IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> VUE项目iconfont自定义SVG(非SVG文件)-_PUSDN -> 正文阅读

[JavaScript知识库]VUE项目iconfont自定义SVG(非SVG文件)-_PUSDN

简述

VUE项目iconfont自定义SVG,在线或者离线下载的阿里巴巴icon font.js;并非SVG文件;

前情提示

VUE2;
在线或者离线下载的阿里巴巴icon font.js;并非SVG文件;
文中使用的icon仅用于演示;

一说

  • 同步更新最新版、完整版请移步PUSDN Powered By PUSDN - 平行宇宙软件开发者网www.pusdn.com ,转载请标明出处!
  • 部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢?
  • 带有#号、删除线、不操作、不执行字样的为提示或者备份bash,实际不执行

?

创建iconfont项目并配置

具体详见
https://janeyork.blog.csdn.net/article/details/121525265
注意:这里直接引用的symbol JS文件,而不是SVG文件

tips:
如下图,可以看到svg彩色,而其他还是黑白,还有几个圆圈没有展现出来

image.png
image.png
?

symbol介绍

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 这种用法其实是做了一个svg的集合,与上面两种相比具有如下特点:

支持多色图标了,不再受单色限制。
通过一些技巧,支持像字体那样,通过font-size,color来调整样式。
兼容性较差,支持 ie9+,及现代浏览器。
浏览器渲染svg的性能一般,还不如png。

引入到项目中

将下载的JS,放到src/components/iconfont/web(没有就新建一个目录,或者随便那个目录都行asset也行),如下图(因为默认没有勾选SVG,所有没有下载SVG文件)
image.png

新建组件

components/SvgIcon/index.vue,内容如下:

<template>
  <svg class="svgClass" :style="{ fontSize: size + 'px', color: color }" aria-hidden="true">
    <use :xlink:href="iconName" />
  </svg>
</template>

<script>
  export default {
    name: 'svgIcon',
    props: {
      icon: {
        type: String,
        required: true
      },
      color: {
        type: String,
        default: 'rgba(0, 0, 0, 0.65);'
      },
      size: {
        type: Number,
        default: 16
      }
    },
    data() {
      return {};
    },
    computed: {
      iconName() {
        return `#pgz-icon-${this.icon}`;
      }
    }
  };
</script>
<style scoped>
  .svgClass {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
    fill: currentColor;
    overflow: hidden;
    outline: 0;
  }
</style>

?

其他组件中使用(单次)

<template>
  <div class="icon-container">
		<svg-icon icon="renzheng" :size="30" class="aaa" />
  </div>
</template>
<style lang="scss" scoped>
  .aaa {
    pointer-events: none;
  }
</style>

全局引入组件(可选)

// main.js全局引入iconfont.js和自定义的IconSvg组件
import '@/components/iconfont/web/iconfont.js'
import svgIcon from '@/components/svgIcon'

Vue.component('svg-icon', svgIcon);

最终效果

image.png
image.png

其他

单个VUE组件中引入在线CDN

也可以全局在index.html全局引入。

css:
<style scoped>
    @import '//at.alicdn.com/t/font_2962455_7ntq6or5rrp.css';
</style>
js:
第一种方式:利用Vue的mounted生命周期
  mounted() {
    const oScript = document.createElement('script');
    oScript.type = 'text/javascript';
    oScript.src = '//at.alicdn.com/t/font_2962455_t01nol36dtr.js';
    document.body.appendChild(oScript);
  },

如果是SVG文件,需要,此处不做SVG介绍

npm install --save-dev svg-sprite-loader
或者
yarn add svg-sprite-loader -D
或者查看ant design vue pro vue2版本中用的yarn add -D vue-svg-icon-loader
同时还要考虑到config.js等配置

额外

vue自定义icon:https://janeyork.blog.csdn.net/article/details/121525265

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:46:34  更:2021-11-26 08:47:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 3:30:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码