svg用$('parent').on('click','child',function(){console.log(1212);})时不起作用

今天在给svg图标绑定事件时,发现点击svg图标没反应,控制台也不报错。经过调试时发现给svg绑定事件时不起作用,给Svg图标外面再包裹一个i标签,把事件绑定到i标签时即可。
可以使用 HTML5 的 Canvas 元素将上传的 SVG 图像重新绘制成指定尺寸的 SVG,并将其存储起来。以下是一个示例代码: ```javascript hansdleChange(file, fileList) { let imgSize = Number(file.size / 1024); const isSVG = file.name.split(".")[1] === "svg"; if (!isSVG) { this.$refs.upload.clearFiles(); this.$message.error("上传图片只能是 SVG 格式!"); } else { if(imgSize > 8){ this.$refs.upload.clearFiles(); this.$message.error("上传图片不能大于8KB!"); } else { const reader = new FileReader(); reader.onload = (e) => { const svgData = e.target.result; const img = new Image(); img.onload = () => { const canvas = document.createElement("canvas"); canvas.width = 48; canvas.height = 48; const ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, 48, 48); const resizedSvgData = canvas.toDataURL("image/svg+xml"); // 将 resizedSvgData 存储到你想要的位置 this.deviceForm.file = resizedSvgData; }; img.src = svgData; }; reader.readAsDataURL(file.raw); } } } ``` 上面的代码通过创建一个 FileReader 对象来读取上传的 SVG 文件,并将其转换为 data URL。然后,创建一个新的 Image 对象并载该 data URL。接下来,创建一个 Canvas 元素并将其尺寸设置为目标尺寸(这里是48x48)。使用 Canvas 的 `drawImage` 方法将 SVG 图像绘制到 Canvas 上,并使用 `toDataURL` 方法将 Canvas 转换为 data URL。最后,将该 data URL 存储到你想要的位置(例如,`this.deviceForm.file`)。 注意:由于使用了 FileReader、Canvas 和 Image 对象,上述代码可能需要在浏览器环境中运行,而不是在纯粹的 JavaScript 环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值