更新记录
1.1.2(2020-07-29) 下载此版本
增加了阻止冒泡事件的属性stop,默认为false
1.1.1(2020-07-02) 下载此版本
修复了easycom冲突问题
使用组件时组件名为
1.1.0(2020-05-14) 下载此版本
适配easycom组件模式,在pages.json的easycom节点进行个性化设置即可。
在easycom节点中custom子节点添加一行"(.*)": "@/components/Ammmm-$1/index.vue"即可无需引入组件直接使用
平台兼容性
FontAwesome 5.13.0
uni-app 通用组件 支持App, H5, 微信小程序 (其他端没看)
基于Font-Awesome 5.13.0 版构建, 看到插件市场只有4.7版本的,就自己写了一个贡献给大家。
不推荐使用在微信小程序中,因为光字体的css文件就已经很大了(足足700kb)
组件名FontAwesome
使用方式
在script
中引用此组件
import FontAwesome from '@/components/Ammmm-FontAwesome/index.vue'
export default {
components: {
FontAwesome
}
}
在<template>
中使用此组件
<FontAwesome type="fas fa-angle-right" size="40" color="red" @click="testClick"></FontAwesome>
图标效果参考:Font Awesome https://fa5.dashgame.com/#/图标
easycom
如果项目采用了easycom组件模式可以在pages.json
中配置自定义格式,这样就不用手动引入组件了
"easycom": {
"autoscan": true,
"custom": {
"Am-(.*)": "@/components/Am-$1/index.vue" // 加入此行即可
}
}
采用easycom组件模式后在<template>
中使用组件需要带前缀
<Am-FontAwesome type="fas fa-angle-right" size="40" color="red" @click="testClick"></Am-FontAwesome>
属性说明
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
type | String | 必填 | 图标图案,在Font Awesome 5.13.0 版本中的图标都可以,需要带前缀(fas/fab/far fa-* ) |
size | String/Number | 默认18px | 图标大小font-size 不需要加单位 单位自动设置为rpx |
color | String | #000000 | 颜色 |
fw | Boolean | false | (固定宽度)是否需要垂直对齐一系列图标,例如列表或导航菜单中的图标 |
rotate | String/Number | - | 旋转图标,顺时针方向,值为旋转度数180/270/90 |
flip | String | - | 翻转图标,一共有三个值horizontal/vertical/both |
spin | Boolean | false | (图标动画)使图标规律转动 |
pulse | Boolean | false | (图标动画)使图标8方向旋转(定格动画) |
border | Boolean | false | 给图标加上边框 |
pullLeft | Boolean | false | 此属性可改变icon位于text流位置(左侧) |
pullRight | Boolean | false | 此属性可改变icon位于text流位置(右侧) |
inverse | Boolean | false | 反色 |
stack | Array | - | (堆叠)使两个图标堆叠在一起(具体请看下面详细说明) |
stackIndex | String/Number | stack存在时必填 | 堆叠大小(1为显示小一点的图标/2为显示大一点的图标) |
@click | Function | - | 点击事件 |
stop | Boolean | false | 阻止冒泡事件 |
stack属性说明
stack是一个length为2的数组,分别是下层的图标length: 0
和上层的图标length: 1
分别为两个对象[Object, Object]
每个对象属性和普通组件属性相同
唯一不同的就是需要加上stackIndex
属性
代码示例
<template>
<view>
<view class="demoList">
<text class="title">颜色Color</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="Tomato"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="Dodgerblue"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="Mediumslateblue"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="blue"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="green"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="pink"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="red"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw color="yellow"></Am-FontAwesome>
</view>
</view>
</view>
<view class="demoList">
<text class="title">大小FontSize</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="30" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="40" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="50" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="60" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="70" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="80" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="90" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-camera" size="100" fw></Am-FontAwesome>
</view>
</view>
</view>
<view class="demoList">
<text class="title">旋转/镜像 Rotate/Flip</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw rotate="90"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw rotate="180"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw rotate="270"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw flip="horizontal"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw flip="vertical"></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-snowboarding" size="100" fw flip="both"></Am-FontAwesome>
</view>
</view>
</view>
<view class="demoList">
<text class="title">动画 Animating</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome type="fas fa-spinner" size="100" fw spin></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-circle-notch" size="100" fw spin></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-sync" size="100" fw spin></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-cog" size="100" fw spin></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-spinner" size="100" fw pulse></Am-FontAwesome>
</view>
<view class="list">
<Am-FontAwesome type="fas fa-stroopwafel" size="100" fw spin></Am-FontAwesome>
</view>
</view>
</view>
<view class="demoList">
<text class="title">拖动/边框 PulledIcons</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome type="fas fa-quote-left" size="100" fw pullLeft></Am-FontAwesome>
<text>靠左</text>
</view>
<view class="list" style="margin-left: 40rpx;">
<Am-FontAwesome type="fas fa-arrow-right" size="100" fw pullRight border></Am-FontAwesome>
<text>靠右+边框</text>
</view>
</view>
</view>
<view class="demoList">
<text class="title">堆叠 Stack</text>
<view class="scrollX" style="box-sizing: border-box; padding: 30rpx;">
<view class="list">
<Am-FontAwesome size="60" fw :stack="[
{
type: 'fas fa-square',
stackIndex: 2
}, {
type: 'fab fa-twitter',
stackIndex: 1,
inverse: true
}
]"></Am-FontAwesome>
<Am-FontAwesome size="60" fw :stack="[
{
type: 'fas fa-circle',
stackIndex: 2
}, {
type: 'fas fa-flag',
stackIndex: 1,
inverse: true
}
]"></Am-FontAwesome>
<Am-FontAwesome size="60" fw :stack="[
{
type: 'fas fa-square',
stackIndex: 2
}, {
type: 'fas fa-terminal',
stackIndex: 1,
inverse: true
}
]"></Am-FontAwesome>
<Am-FontAwesome size="100" fw :stack="[
{
type: 'fas fa-camera',
stackIndex: 1
}, {
type: 'fas fa-ban',
stackIndex: 2,
color: 'Tomato'
}
]"></Am-FontAwesome>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
};
},
methods: {
}
}
</script>
<style lang="scss">
.demoList {
display: flex;
flex-direction: column;
> .title {
font-size: 32rpx;
font-weight: bold;
color: #333333;
background: #E3E3E3;
padding: 20rpx 30rpx;
box-sizing: border-box;
}
}
</style>