记录一个显示svg图标遇到的问题及解决方案

我们写了一个h5活动页面放在微信公众号上,该页面有一个 svg 的小图标,我一开始直接使用了 img 标签进行显示,结果在 iphone 设备上,该图标渲染出来有一些模糊。经过查询资料才知道,在 iphone 设备上,img 标签引入的 svg 会被解析成普通的 png 图片,分辨率还很低。

于是我使用了 object 标签来显示图标,这下是清晰了,但是我为 object 或者他的父级 div 设置点击事件却没了反应,经过一番尝试,有了以下解决方案:

html 复制代码
<div class="icon">
  <object type="image/svg+xml" data="xxx"></object>
  <div class="click-layer" @click="alert('hello')"></div>
</div>

<style>
.icon {
  position: relative;
}
.icon .click-layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}
</style>

就是给图标加一个透明的层盖住,然后给这个层加点击事件,完美!

相关推荐
m0_敲代码的彭于晏16814 小时前
Vercel 前端部署平台深度评测
前端
怕浪猫16 小时前
外包和大厂的前端代码,差在凌晨三点
前端·面试·github
m0_敲代码的彭于晏16816 小时前
Vercel 前端部署与全栈开发实战指南
前端·状态模式
徐小夕16 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
贾伟康16 小时前
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂
前端·移动开发·harmonyos·arkts·arkui
Csvn17 小时前
SSR/SSG/ISR(上):峡谷与渲染策略的时间预算
前端
Csvn17 小时前
SSR/SSG/ISR(下):可交互性、新鲜度与回源账
前端
Elcker20 小时前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
计算机魔术师20 小时前
发现2天,修复2个月:AI挖穿PHP后,卡兹克讲透攻防时间差
前端
风骏时光牛马20 小时前
测试标题001
前端