嘿嘿,好久不更博客啦。突然记起这个修改svg颜色这个挺好玩的,记录一下。哈哈哈哈,没想到svg还能这样玩。

需求:vue-admin-template里面某个模块鼠标滑过时里面的图标变颜色

首先解决方案有很多,改background-image,改img的路径。我都觉得这些最终都是要换图片,有没有直接在图片的基础上改个颜色就ok的。哈哈,svg一下子映入脑子。这玩意阿里icon-font都可以改颜色,啧啧,那么我是不是也可以尝试。

说干就干。百度走一波,首先看到一个哥们的博客。如图:

https://blog.csdn.net/weixin_41615439/article/details/107181777

懒得点开链接的,我就把代码放进来看:

.svg{
    fill:currentColor;
    color:red;
}

看完直接上手。发现,咦?好像还是不行啊。然后再找一篇

https://blog.csdn.net/kaimo313/article/details/107772602

嗯,这哥们说的就是在vue中,怎么将svg集成能改颜色的,主要css代码如下:

.svg-icon {
  fill: currentColor; //此属性为更改svg颜色属性设置
  stroke: currentColor;
  overflow: hidden;
}

但是,这个并不没有实现我鼠标划过就能改色,解决不了问题,然后,我发现一哥们,直接暴力改颜色,哎,可惜了,忘记收藏那个哥们的链接地址,不然也要推一波。最给力是他教我改fill变成currentColor。

来,直接上修改方案,

第一步,进到svg的代码,在path里面找到fill然后修改成fill="currentColor"

<svg id="_1.Bace基础_3.Icon图标_文件_folder" data-name="1.Bace基础/3.Icon图标/文件/folder" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
  <rect id="folder_Background_" data-name="folder (Background)" width="16" height="16" fill="none"/>
  <path id="folder" d="M12,11.5H1a1,1,0,0,1-1-1V1A1,1,0,0,1,1,0H4.091l.131.1,1.94,1.4H12a1,1,0,0,1,1,1v8A1,1,0,0,1,12,11.5ZM1,1v9.5H12v-8H5.838l-.131-.1L3.767,1Z" transform="translate(1.5 2.5)" fill="currentColor" />
</svg>

第二步,修改类名

.svg{
    fill:currentColor;
    color:rgba(51, 51, 51, 0.8);
}

第三步,鼠标经过对应div,修改hover事件

.node:hover .svg{fill:currentColor;color: #001B84}

经上,完成了svg的改色。嘿嘿,有意思吧,冷门吧,解决了开心不。哈哈哈。

GitHub 加速计划 / vu / vue-admin-template
19.83 K
7.39 K
下载
PanJiaChen/vue-admin-template: 基于 Vue.js 和 Element UI 的后台管理系统模板,支持多语言、主题和布局切换。该项目提供了一个完整的后台管理系统模板,可以方便地实现后台管理系统的快速搭建和定制,同时支持多种数据源和插件扩展。
最近提交(Master分支:2 个月前 )
4c18a3f4 - 2 年前
714ded11 - 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐