一个vue2的多色图标方案:vue-svg-icon

示例: https://cenkai88.github.io/vu...

项目地址: https://github.com/cenkai88/v... 求star~~
个人的第一个vue组件,希望大家多多支持啦~?
基于vue-awesome扩展而来
其实想到写这个的原因主要是在开发中常常需要用到图标,这一块经历了四个阶段。

  1. 用的awesomeFont之类的库

  2. 发现iconfont之后,每用到一个图标就去搜一个加入到工程中,自定义程度更高,也减少图标引入。

  3. 从iconfont下了图标之后用illustrator编辑形状或者颜色之后达到更高的定制性。

  4. 在写这个组件之前,发现SVG图片其实就是XML格式的标签,其中fill属性六位颜色值的路径会根据值渲染颜色,而fill为空的可被HTML中该SVG节点css3的**color
    **属性控制,这样的话我们可以为图标赋予两种状态。

组件特点:

  • 可即时在illustrator中编辑svg图片

  • 可通过css的color属性动态地调整svg中某一部分的颜色

  • 可以通过上面所提到的两种状态方便地完成一些功能(如tabbar)

clipboard.png

clipboard.png

clipboard.png

1. 安装
npm install vue-svg-icon --save-dev
2. 将svg图片放入src/svg

这里安利一个svg图片库iconfont

  • src/svg路径暂时不可配置

  • src文件夹应和node_modules在同一个文件夹下

3. 在项目的main.js入口引入vue-svg-icon和需要使用的svg文件名(不需扩展名)
import Icon from 'vue-svg-icon/Icon.vue';Vue.component('icon', Icon);
Icon.inject('chameleon'); // SVG图片名字(无扩展名)
4. 在网页中使用icon标签就可以啦!
<icon name="chameleon" scale="20"></icon>
注意

在illustrator中编辑svg图片时

  • 注意illustrator中所有的矩形线段等等需转成复合路径再保存。

clipboard.png

  • 编辑完保存时,请选择"另存为",在"高级选项"中将"css属性"设置成演示文稿属性
    clipboard.png

  • 需要通过css动态设置颜色等部分请将填充色设为纯黑(#000000),如果想设置黑色但不受svg的color影响请将填充色设为(#000001)

  • 推荐svg尺寸为200*200

如果你读到这了,那么这个插件八成适合你,请移步vue-svg-icon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue2-svg-icon一个 Vue.js 的 SVG 图标组件,可以用于快速加载和使用 SVG 图标。以下是使用步骤: 1. 安装 vue2-svg-icon 可以使用 npm 或 yarn 进行安装: ```bash npm install vue2-svg-icon --save ``` 或者 ```bash yarn add vue2-svg-icon ``` 2. 引入组件 在你的 Vue.js 组件中引入 vue2-svg-icon: ```js import SvgIcon from 'vue2-svg-icon' Vue.component('svg-icon', SvgIcon) ``` 3. 使用组件 在模板中使用 `svg-icon` 标签,并指定 `icon` 属性为对应的图标名称: ```html <svg-icon icon="arrow-up"></svg-icon> ``` 其中 `arrow-up` 是图标的名称,具体的图标名称需要查看你所使用的 SVG 图标库。 4. 配置 SVG 图标vue2-svg-icon 默认使用的是 [icomoon](https://icomoon.io/) 的 SVG 图标库,你可以在 `SvgIcon` 组件中通过 `set` 方法来配置使用其他的 SVG 图标库。 例如,如果你想使用 [fontawesome](https://fontawesome.com/) 的 SVG 图标库,可以这样配置: ```js import SvgIcon from 'vue2-svg-icon' import { library } from '@fortawesome/fontawesome-svg-core' import { faCoffee } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' library.add(faCoffee) Vue.component('font-awesome-icon', FontAwesomeIcon) SvgIcon.set({ name: 'fontawesome', classPrefix: 'fa-', classSuffix: '', defaultWidth: '1em', defaultHeight: '1em' }) ``` 这里我们使用了 `@fortawesome/fontawesome-svg-core` 和 `@fortawesome/free-solid-svg-icons` 来引入 fontawesome 的 SVG 图标库,并且配置了 `SvgIcon` 组件使用 `fontawesome` 图标库,并指定了图标的 class 前缀为 `fa-`,这样我们就可以在模板中使用 `fa-coffee` 这个图标了: ```html <svg-icon icon="fa-coffee"></svg-icon> ``` 更多关于 vue2-svg-icon 的使用方法,可以参考它的官方文档:https://github.com/cenkai88/vue-svg-icon#readme

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值