uni-app 的uni-ui 的 Icon 图标组件,裡面的图标只是移动端常见的图标,对于一些其他需求所要显示的图标,这个是完全不够用。那么怎么办?模仿它的组件,用阿里巴巴图标矢量库的图标,自己定义一个图标组件呀。

一、uni-app 图标组件

1、组件文件m-icon里面有两个文件,一个是m-icon.css文件一个是m-icon.vue文件

2、m-icon.css

3、m-icon.vue

4、使用

上面就是uni-app 官网的例子。接下来我们就参考这个自己写一个组件。

二、新建组件

1、uni-icon ,里面有uni-icon.css 和uni-icon.vue 两个文件

uni-icon.css

@font-face {
font-family: uniicons;
font-weight: normal;
font-style: normal;
/* 暂时先用官网的url */
src:url('https://at.alicdn.com/t/font_1328537_gk9yl0aa13q.ttf') format('truetype');
} .icon {
font-family: uniicons;
font-size: 48upx;
font-weight: normal;
font-style: normal;
line-height:;
display: inline-block;
text-decoration: none;
-webkit-font-smoothing: antialiased;
} .icon.uni-active {
color: #007aff;
}

uni-icon.vue

:class="['icon-'+type]"  对应uni-icon.css 里面的 .icon-scan:before {
  content: "\e638";
}
<template>
<view class="icon" :class="['icon-'+type]" :style="{color:color,'font-size':fontSize,'background':background}" @click="onClick()"></view>
</template> <script>
export default {
props: {
/**
* 图标类型
*/
type: String,
/**
* 图标颜色
*/
color: String,
/**
* 图标背景颜色
*/
background: String,
/**
* 图标大小
*/
size: {
type: [Number, String],
default: 24
}
},
computed: {
fontSize() {
var size = Number(this.size)
size = isNaN(size) ? 24 : size
return `${size}px`
}
},
methods: {
onClick() {
this.$emit('click')
}
}
}
</script> <style>
@import "./u-icon.css";
</style>

这里其实可以看出,其实就是和官网的一样,只是换了一下名字。

接下来就是把阿里巴巴图标加进来

三、阿里巴巴图标矢量库

1、注册一个阿里巴巴图标矢量库账号

2、选择自己想要的图标,加入购物车;然后把购物车里面的图标添加至你的项目里面。

3、在我的项目中,下载文件,然后解压,找到iconfont.css文件夹,将里面的【***:before】 全部复制到你现有的工程项目里。

我们先看看iconfont.css是怎样的

uni-icon.css

这里有一个要注意的点

iconfont.css 里面的

.icon-scan:before {
  content: "\e638";
}

刚好是.icon前缀和我定义的uni-icon.css 里面的.icon 前缀名字相同,所以直接复制粘贴就可以了。如果我定义的是.uni-icon前缀 的话,那么这个时候uni-icon.css 复制进来的

.icon-scan:before {
  content: "\e638";
}

就要改成

.uni-icon-scan:before {
  content: "\e638";
}

4、还差一步,就是src的url

将Unicode只要复制.ttf的那个url 添加到uni-app 项目中添加https

uni-icon.css 最终版

@font-face {
font-family: uniicons;
font-weight: normal;
font-style: normal;
src:url('https://at.alicdn.com/t/font_1302625_v83rvydxjyo.ttf') format('truetype'); //更新这里
} .icon {
font-family: uniicons;
font-size: 48upx;
font-weight: normal;
font-style: normal;
line-height: 1;
display: inline-block;
text-decoration: none;
-webkit-font-smoothing: antialiased;
} .icon.uni-active {
color: #007aff;
}
/* 加进来的图标 */
.icon-scan:before {
content: "\e638";
}

就可以正常使用啦

5、如果后续还有要加入其它的图标呢?

重复上面1、2两步

然后点击更新  Unicode ,将更新后的.ttf的那个url 更新到uni-icon.css 中

最后点击图标 编辑

在uni-icon.css 中加入

.icon-people_fill:before {
content: "\e601";
}

就可以啦 。不需要重新下载解压

uni-app 使用 iconfont 图标 自定义图标的更多相关文章

  1. uni app中使用自定义图标库

    项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...

  2. Android开发app如何设定应用图标下的应用名称为汉字以及自定义图标

    一.应用名称为汉字 二.自定义图标

  3. ionic2中使用自定义图标

    在ionic2中使用自定义图标,如iconfont(阿里巴巴矢量图标). 先在http://www.iconfont.cn/ 中找到自己需要的图标,然后将图标加入购物车,然后下载该图标. 下载完成后解 ...

  4. 微信小程序自定义字体及自定义图标问题说明

    自定义图标及自定义字体,一直是很多小程序开发者的心病,其实本站是很多解决方案的,为了集中起来,方便直接跳过此坑,我特别做了这次针对字体及字体图标的跳坑: 相关文章:微信小程序添加并使用外部字体(成功添 ...

  5. Windows 8.1——将网站固定到开始菜单,自定义图标、颜色和Windows推送通知

    记得在IE 9和Windows 7刚出来那会儿我写过一篇文章来介绍如何自定义网站将其固定到Windows的任务栏上,同时自定义图标及任务内容.那个功能在IE 9中被称之为JumpList.http:/ ...

  6. Sencha Touch 2.2.1 Custom Icon 自定义图标

    ST2.2版本竟然又改变了sass中自定义图标的添加方式,在2.2以前采用的是这种base64的方式,详见:http://www.cnblogs.com/qidian10/archive/2012/1 ...

  7. 将网站固定到开始菜单,自定义图标、颜色和Windows推送通知

    Windows 8.1——将网站固定到开始菜单,自定义图标.颜色和Windows推送通知 记得在IE 9和Windows 7刚出来那会儿我写过一篇文章来介绍如何自定义网站将其固定到Windows的任务 ...

  8. ionic2 tabs使用自定义图标

    在ionic2中图标是通过类添加的 比如说   tabIcon="homeImg" 在页面中研究可以看到在ios上有一个类是 .ion-ios-homeImg:before 所以我 ...

  9. ionic2 +Angular 使用自定义图标

    结合阿里巴巴矢量图标库实现在ionic2开发中使用自定义图标. step1:在阿里巴巴图标管理中新建项目,并添加自己选中的图标到购物车: step2:将购物车中的图标"添加至项目" ...

随机推荐

  1. Neutron服务组件

    OpenStack 项目中的Neutron 网络服务组件中提供虚拟机实例对网络的连接,其中plug-ins 能够提供对多种网络设备和软件的支持,使OpenStack 环境的构建和部署具备更多的灵活性, ...

  2. VUE 单选下拉框Select中动态加载 默认选中第一个

    <lable>分类情况</lable> <select v-model="content.tid"> <option v-for=&quo ...

  3. C#自由组合本地缓存、分布式缓存和数据库的数据

    一.背景介绍: 我们在进行数据存储的时候,有时候会加入本地缓存.分布式缓存以及数据库存储三级的结构,当我们取值的时候经常是像下面这样的流程: 1.先取本地缓存,如果值存在直接返回 2.本地缓存不存在, ...

  4. mysql 创建用户并授权数据库

    create user test identified by ‘password’:password  你要创建的用户对应的密码 grant all on database.*  to  test;  ...

  5. Excel 教程二 单元格范围的使用

    上一篇已经看了Excel这个软件的基本功能区,这一节我们来看一下我们经常使用的单元格范围. 一.首先我们看一下单元格,行和列 单元格指的是excel工作簿中的某一行某一列对应的具体位置,列指的是从上到 ...

  6. 下载uhd_images_downloader出现报错

    下载uhd_images_downloader出现报错 [INFO] Images destination: /usr/local/share/uhd/images [INFO] No invento ...

  7. Python服务器开发 -- 网络基础

    Python服务器开发 -- 网络基础   网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.... 网络由下 ...

  8. 04_mysql安装

    # 安装 [root@localhost ~]# yum install mysql mysql-server -y 报错 [root@ossec-server ~]# yum install mys ...

  9. 020_linux驱动之_输入子系统按键应用

    (一)分配一个输入子系统结构体 static struct input_dev *buttons_dev; /*分配一个input_dev结构体*/ (二)设置这个输入子系统需要的动作 /* 1. 分 ...

  10. The method setCharacterEncoding(String) is undefined for the type HttpServletResponse

    今天将以前做的一个web项目从不笔记本上移到台式机上,import项目后出现“The method setCharacterEncoding(String) is undefined for the ...