打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
前端 引用svg图片,支持动态切换颜色

当我们添加一张svg图片显示时,react提示找不到文件。

我们可以在全局文件global.d.ts内,添加图片类型的声明:

详见《TypeScript 引用资源文件后提示找不到的错误处理方案

声明之后,引用不报错了。然后我们看看svg图片,里面有颜色及其它设置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 3     <title>窗口_返回</title>
 4     <g id="控件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 5         <g id="窗口_返回">
 6             <rect id="Rectangle-6" fill="#D8D8D8" opacity="0" x="0" y="0" width="24" height="24"></rect>
 7             <path d="M8.35417135,12.9957726 C8.13320936,12.7345458 8,12.3967967 8,12.0279541 C8,11.6586058 8.13357489,11.3204363 8.3550807,11.0590615 L8.3521103,11.0564202 L14.356041,4.51971371 L14.3599873,4.52318728 C14.635253,4.20288524 15.0434555,4 15.4990737,4 C16.3280124,4 17,4.67157288 17,5.5 C17,5.8870199 16.8533375,6.23980607 16.6125263,6.50587693 L16.6210783,6.51340439 L11.5390798,12.0228281 L16.5124905,17.3935277 C16.8121157,17.6677653 17,18.0619548 17,18.5 C17,19.3284271 16.3280124,20 15.4990737,20 C15.0262153,20 14.6044287,19.7814702 14.3293154,19.439953 L8.35278214,12.9970098 L8.35417135,12.9957726 L8.35417135,12.9957726 Z" id="Oval-43-Copy-3" fill="#808080"></path>
 8         </g>
 9     </g>
10 </svg>

是否可以根据一张svg,显示不同的效果?比如hover后高亮

理论上添加xml代码解析,然后将svg以组件形式添加渲染,是可行的。

在网上逛了一圈,发现大多数都比较水,很多是通过加载全局的图片,作为单独组件或者缓存来使用,不适用

react-inlinesvg

发现了一个比较不错的开源,超级不错,安利!

https://github.com/gilbarbara/react-inlinesvg

安装:npm i react-inlinesvg 或者 yarn add react-inlinesvg

添加引用:import SVG from 'react-inlinesvg';

添加图片:

1.import BackPng from '../../../../assets/images/back.svg';
2.<SVG className="backIcon" src={BackPng} />
设置动态样式:
 1   &:hover {
 2     path {
 3       fill: #4ecb78;
 4     }
 5     .backContent {
 6       color: #4ecb78;
 7     }
 8   }
 9   &:active {
10     path {
11       fill: #2baf57;
12     }
13     .backContent {
14       color: #2baf57;
15     }
16   }

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
动态修改svg图片颜色
Python3.7将普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来
SVG中以任意直线为对称轴的镜像变换及其矩阵
如何将SVG字符串转换为PNG?
svg编程动画五星大街源代码
SVG 动画精髓
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服