前端使用svg图片改色实现示例

作者:前端架构师陈龙威 时间:2022-03-14 03:54:14 

引言

周六来公司写点东西,刚好有个icon颜色不对,ui又不在公司,那么就只能自己动手丰衣足食了。

呜呜呜,好想住公司,都不用上下班了。

svg填充色用的fill

当ui给你了svg图片,且是单色的,又只有你用

svg填充色用的fill,修改里面的颜色即可。

下面是例子:

首先,ui一般会直接给你svg图片,比如这样的:

前端使用svg图片改色实现示例

,用idea或者笔记本打开里面是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   <title>元件/组件图标/提示/面</title>
   <g id="元件/组件图标/提示/面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
       <path d="M8,16 C3.581722,16 0,12.418278 0,8 C0,3.581722 3.581722,0 8,0 C12.418278,0 16,3.581722 16,8 C16,12.418278 12.418278,16 8,16 Z M7.5,11.5 C7.5,11.7762581 7.72387097,12 8,12 C8.27612903,12 8.5,11.7762581 8.5,11.5 C8.5,11.2237419 8.27612903,11 8,11 C7.72387097,11 7.5,11.2237419 7.5,11.5 Z M8,4 C7.72385763,4 7.5,4.22385763 7.5,4.5 L7.5,9.5 C7.5,9.77614237 7.72385763,10 8,10 C8.27614237,10 8.5,9.77614237 8.5,9.5 L8.5,4.5 C8.5,4.22385763 8.27614237,4 8,4 Z" id="icon换色层" fill="#f2b044"></path>
   </g>
</svg>

搜索关键词,找到id="icon换色层" fill="#f2b044",替换fill的值为#df2222,那么就变成红色了。

前端使用svg图片改色实现示例

你可以试试。

css改色利用过滤器filter

当你用的公司统一的svg格式的icon,但是颜色和这次的需求不一致,直接改svg文件可能影响其他显示,可以考虑css

看到这个,有人就要说了,还不如按方法1,改个颜色,然后复制下文件改名,粘贴,简单粗暴。

确实,可惜我们是前端,一点点优化也是优化,一点点体积也是体积(一点点味道一般,还是蜜雪冰城好喝)。css改色利用的是过滤器filter的drop-shadow属性,它的功能是可定点定位生成一个可调整模糊度以及颜色的投影, * ,真牛,感觉能做好多炫酷的东西,属实是彩色影分身术了。

具体代码:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
   <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: 0; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

效果如下:

前端使用svg图片改色实现示例

然后我们调整下原本icon的位置,将它往左挪出去:left:-20px,代码如下:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
 <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: -20px; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

前端使用svg图片改色实现示例

最后我们去掉方便识别的边框,并给div加上overflow:hidden,一个简单的icon改色就完成了!!好棒!!。

前端使用svg图片改色实现示例

最后顺便介绍下filter: drop-shadow()

filter: drop-shadow(x, y, blurry, color),第一个参数距离源x轴的像素大小,第二个参数是距离源y轴的像素大小,第三个是模糊度,第四个是投影的颜色。

这是mdn的资料,有个很好看的实现:developer.mozilla.org/zh-CN/docs/&hellip;

前端使用svg图片改色实现示例

这个蓝色底就是drop-shadow实现的。

最后看我多重影分身之术:

drop-shadow(20px 0 red) drop-shadow(20px 20px green) drop-shadow(20px 39px blue) drop-shadow(20px 0 skyblue)

前端使用svg图片改色实现示例

原图是橙色,第一次是红色,第二次是绿色,第三次是蓝色,第四次是天蓝,每多一次drop-shadow,都会把上一次的图像复制一次,把上一次的作为原图进行投影,是裂变了没错!!

来源:https://juejin.cn/post/7120895248665935902

标签:前端,svg,图片改色
0
投稿

猜你喜欢

  • JavaScript 日期下拉选择器

    2008-10-31 12:13:00
  • PyCharm无法引用自身项目解决方式

    2023-06-10 06:25:53
  • Python3利用Dlib19.7实现摄像头人脸识别的方法

    2022-08-08 06:41:22
  • python 一篇文章搞懂装饰器所有用法(建议收藏)

    2023-12-06 17:27:43
  • 知识蒸馏联邦学习的个性化技术综述

    2022-07-04 21:03:51
  • 实例讲解PHP验证邮箱是否合格

    2023-11-22 07:05:53
  • 使用Python3编写抓取网页和只抓网页图片的脚本

    2023-08-15 08:00:17
  • 解决Mysql的left join无效及使用的注意事项说明

    2024-01-16 00:18:09
  • MySQL复合索引的深入探究

    2024-01-22 21:12:48
  • Mysql中的concat函数(拼接函数)详解

    2024-01-27 21:01:37
  • Python如何使用函数做字典的值

    2021-10-24 02:28:05
  • Python在画图时使用特殊符号的方法总结

    2021-12-27 22:29:34
  • 详解python中的hashlib模块的使用

    2022-02-24 17:05:37
  • DIV+CSS常见错误及解决方法

    2008-04-25 22:46:00
  • python3 字符串知识点学习笔记

    2023-05-02 16:25:35
  • python (logging) 日志按日期、大小回滚的操作

    2023-10-03 02:42:21
  • python+opencv像素的加减和加权操作的实现

    2021-11-29 03:39:14
  • Python seaborn数据可视化绘图(直方图,密度图,散点图)

    2023-01-11 11:35:08
  • 一文详解Go语言fmt标准库的常用占位符使用

    2023-08-07 01:57:56
  • 网页设计趋势之:”勾引”用户的按钮

    2009-02-17 12:09:00
  • asp之家 网络编程 m.aspxhome.com