当前位置:   article > 正文

antd vue 自定义侧边栏svg图标、并改变图标颜色_ant-design-vue使用iconfont中的svg

ant-design-vue使用iconfont中的svg

ant design vue pro 1.7x版本的,左侧菜单使用 svg 图标方法。

原由:

1.官方图标不够使用,或者某些图标不大合适。

2.由于后台管理系统返回的菜单图标是字符串的

官方方法自定义 svg 图标

  1. //官方教程
  2. //config/router.config.js 中
  3. import { bxAnaalyse } from '@/core/icons'
  4. .... asyncTouterMap = {
  5. ....
  6. meta: { .... icon: bxAnaalyse ......
  7. }
  8. //自定义图标在 core/icons 中 import 和 export

解决方法:

1、原由1:需要进行图标扩展,上 iconfont 下载需要的 svg 图标,放入 assets/icons 中,在 core/icons.js import 和 export,在需要的地方 import 使用;

2、原由2:在使用的时候不可能全部都先 import {xxx} from ...,然后写个 switch 从字符串转成对象,所以这个时候采用 import * as xx from '@/core/icons',然后使用 xx['icon'] 进行使用

  1. // api 返回左侧菜单数据,内包含 icon,类似如下:
  2. // {"icon": "svg-shouyi", Name: '收益管理'......}
  3. // 在生成左侧路由时类似下方代码
  4. import * as icon from '@/core/icons'
  5. ......
  6. return currentrouter = {
  7. ...
  8. meta: {
  9. icon: icon['Icon']
  10. ....
  11. }
  12. }
  13. ......

 还有一种采用 vue-element-admin 的 icons 方式 require

改变图标颜色

侧边栏使用自定义图标时,点击菜单会发现图标颜色不会更改。以下有三种方法可以改变颜色。

1、需要找到对应的 svg,然后删除 fill 或者改成 fill="#......",一个 svg 可能有多个 fill;

2、在 iconfont 下载图标的时候,使用添加到项目,点击批量操作 —> 批量去色;

3、使用 css3 的滤镜 filter 中得到属性 frop-shadow 改变 svg 的颜色;

<img :src="weather.icon" width="80" height="80" class="img" />
  1. .img {
  2. position: relatives;
  3. left: -80px;
  4. filter: drop-shadow(#fff 80px 0); // 投影颜色
  5. }
  6. // svg {
  7. // fill: currentColor; // currentColor 为 css 变量,自动读取当前元素颜色
  8. // }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/113100?site
推荐阅读
相关标签
  

闽ICP备14008679号