今天要写个uniapp的移动端项目,底部tabBar需要添加图标,以往都是以图片的形式引入,但是考虑到不同甲方的主题色也不会相同,使用图片的话,后期变换主题色并不友好,所以和UI商量之后,决定使用iconfont阿里巴巴矢量图标库。
想着就是需要简单的引入图标即可,但万万没想到,uniapp的坑,让我猝不及防,好在摸索了大半天,总算有个好的结果,为了记录这次跌倒的坑,决定写下来,希望能帮到其他人。
不过丑话说前面,每个人报错的原因都不一定相同,请自己进行排查错误之后,再针对性参考别人的意见,当然,代码这东西很玄学,有的时候,什么都对,就是出不来,也不是没有可能的。
- 在iconfont图标库选择自己需要用的图标,地址,打包下载至本地,放在static文件夹中,注意,我没有去调整css文件里相对路径或者在线地址什么的,(因为调整之后变成小方块了,图标啥也不显示),就打包下来有什么文件就放什么文件就行了
- 避坑如下:在pages.json文件中
javascript
"tabBar": {
"color": "#000000",
"selectedColor": "#000000",
"borderStyle": "white",
"backgroundColor": "#ffffff",
"iconfontSrc": "/static/icon/iconfont.ttf",//注意这里!!!!一定要在tabBar里,与list同级的位置引入iconfont的src,从static开始写!!!!!!!!
"list": [{
"pagePath": "pages/index",
"iconfont": {
"text": "\ue604",//这里也需要注意,使用的是iconfont里的Unicode类型下的代码标识,但是!引入时,需要将&#x改为\u,否则无法识别
"selectedText": "\ue604",
"color": "#e6e6e6",
"selectedColor": "#07C160"
},
"text": "首页"
}, {
"pagePath": "pages/fillingList/index",
"iconfont": {
"text": "\ue605",
"selectedText": "\ue605",
"color": "#e6e6e6",
"selectedColor": "#07C160"
},
"text": "旅游"
}, {
"pagePath": "pages/mine/index",
"iconfont": {
"text": "\ue677",
"selectedText": "\ue677",
"color": "#e6e6e6",
"selectedColor": "#07C160"
},
"text": "个人"
},
]
},
icon图标显示小方块,搜索了很多文档说需要将iconfont.css文件里的src改为绝对路径啥的,我不知道为啥,按照他们的改了之后,不报错,也出不来。回归了原始的代码之后,iconfont的原文件,我什么都没改,就是需要注意下iconfontSrc的书写位置和地址引入问题 ,以及代码标识前缀改为\u 。
完美~
收工!