# Icon 图标 
基于字体的图标集,包含了大多数常见场景的图标。
# 新版本全局加载兼容性
默认不再加载一次,需要只加载一次可以配置如下参数:
app.use(store)
.use(i18n)
.use(uviewPlus, () => {
return {
options: {
// 修改config对象的属性
config: {
// 只加载一次字体图标
loadFontOnce: true
}
}
}
})
# 自定义默认字体图标自托管资源 3.4.14
受限于uni.loadFontFace,目前仅在APP-VUE/APP-UVUE/微信小程序/支付宝小程序/H5平台支持自定义。 https://zh.uniapp.dcloud.io/api/ui/font.html 因公共CDN存在不稳定等问题,建议将图标放在自己的服务器上,然后在uview-plus初始化时如下配置加载字体图标:
Tips 字体链接需要是下载类型。 字体文件返回的 content-type 参考 font,格式不正确时会解析失败。 字体链接必须是 https(ios不支持http)。 建议格式为 TTF 和 WOFF,WOFF2 在低版本的iOS上会不兼容。 字体链接必须是同源下的,或开启了cors支持,小程序的域名是servicewechat.com 微信开发者工具里提示 Faild to load font可以忽略(这是微信自己的问题不用管https://developers.weixin.qq.com/miniprogram/dev/api/ui/font/wx.loadFontFace.html)
app.use(store)
.use(i18n)
.use(uviewPlus, () => {
return {
options: {
// 修改config对象的属性
config: {
// 默认字体图标自托管资源地址
iconUrl: 'https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf'
}
}
}
})
# 扩充自定义字体图标 3.4.14
如果内置图标不够用可以使用如下方式扩展
APP-VUE/APP-UVUE/微信小程序/支付宝小程序/H5平台如下示例:
app.use(store)
.use(i18n)
.use(uviewPlus, () => {
return {
options: {
// 修改config对象的属性
config: {
customIcon: {
family: 'xyicon',
url: 'https://at.alicdn.com/t/c/font_1305928_egvk3tbr3fs.ttf?t=1744189362601'
},
customIcons: {
'light-mode' : '\ue66c'
}
}
}
}
})
其他平台如抖音/QQ/百度小程序请直接在App.vue定一个一个css示例如下:
@font-face {
font-family: 'xyicon';
src: url('https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf') format('truetype');
}
扩展图标使用方式
<up-icon customPrefix="xyicon" name="light-mode"></up-icon>
# 平台差异说明
App(vue) | App(nvue) | H5 | 小程序 |
---|---|---|---|
√ | √ | √ | √ |
# 基本使用
icon下载地址 :::
通过<up-icon>
形式来调用,设置name
参数为图标名即可。其中color
默认为#606266
,size
默认为16px
<up-icon name="photo"></up-icon>
# 修改图标的样式
- 通过
color
参数修改图标的颜色 - 通过
size
参数修改图标的大小,单位为px
<up-icon name="photo" color="#2979ff" size="28"></up-icon>
# 图片图标
这里说的图片图标,指的是小图标,起作用定位为"icon"图标作用,而非大尺寸的图片展示场景,理论上,这个小图标应该为png
格式的正方形图标。
上面说到,给组件的name
参数传入一个图片的名称即可显示字体图标,这些名称中不能带有/
斜杠符号,否则会被认为是传入了图片图标,同时,size
参数
也被设置为这个图片图标的宽度,由于是图片,诸如颜色color
等参数都会失效。
<up-icon label="uview-plus" size="40" name="https://cdn.uviewui.com/uview/example/button.png"></up-icon>
# 右侧演示页面源代码地址
# API
# Props
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
name | 图标名称,见示例图标集,如名称带有/ ,会被认为是图片图标 | String | - | - |
color | 图标颜色 | String | color['up-content-color'] | - |
size | 图标字体大小,单位默认px | String | Number | 16px | - |
bold | 是否显示粗体 | Boolean | false | - |
index | 一个用于区分多个图标的值,点击图标时通过click 事件传出 | String | Number | - | - |
hoverClass | 图标按下去的样式类,用法同uni的view 组件的hover-class 参数,详见:hover-class (opens new window) | String | - | - |
customPrefix(3.4.16以上支持) | 自定义字体图标库时,需要写上此值 | String | uicon | - |
label | 图标右侧/下方的label文字 | String | Number | - | - |
labelPos | label 相对于图标的位置 | String | right | bottom / top / left |
labelSize | label 字体大小,单位默认px | String | Number | 15px | - |
labelColor | label 字体颜色 | String | color['up-content-color'] | - |
space | label 与图标的距离,单位默认px | String | Number | 3px | - |
imgMode | 图片裁剪、缩放的模式,image组件原生属性,详见:image (opens new window) | String | - | - |
width | name 为图片路径时图片的宽度,单位默认px | String | Number | - | - |
height | name 为图片路径时图片的高度,单位默认px | String | Number | - | - |
top | 图标到顶部的距离,如果某些场景,如果图标没有垂直居中,可以调整此参数,单位默认px | String | Number | 0 | - |
stop | 是否阻止事件传播 | Boolean | false | - |
# Events
事件名 | 说明 | 回调参数 | 版本 |
---|---|---|---|
click | 点击图标时触发 | index: 通过props 传递的index 值 | - |