数字动画滚动vue-count-to插件

安装插件:

vue2:npm install vue-count-to
vue3:npm install vue3-count-to

示例(vue2与vue3只有插件的区别,使用方法一样,数字动画写成一个组件,使用时直接引入组件即可):

<!-- 数字动画组件 -->
<template>
    <span>
        <countTo class="num" :id="id" :ref="id" :startVal="0" :endVal="Number(num)" :duration="2000" :decimals="isDot(num)" prefix="" :suffix="suffix"  ></countTo>
    </span>
</template>

<script>
import countTo from 'vue-count-to'; //引入插件
import countTo from 'vue3-count-to'; //vue3引入插件
export default {
    props: {
        id:{
            type:[String],
            default:'num',
        },
        num:{
            type:[String,Number],
            default:0,
        },
        suffix:{
            type:[String],
            default:'',
        }
    },
    data() {
        return {
            
        };
    },
    components: {
        countTo,
    },
    watch: {
        loop:{
            handler(newVal){
                try {
                    this.$refs[this.id].start();
                } catch (error) {
                    
                }
            },  
            deep:true
        }
    },
    inject:['loop'],
    mounted() {
       
    },
    beforeDestroy() {

    },
    methods: {
        isDot(num) {
            if(num){
                var nums =typeof num == 'string'?num:num.toString();
            }else{
                var nums = '0';
            }
            var result = nums.includes('.');
            if (result) {
                var decim = nums.split('.');
                return decim[decim.length - 1].length; //返回小数点后几位的length
            } else {
                return 0; //整数
            }
        },

    },
};
</script>
<style scoped lang="scss">
</style>

组件使用:

<template>
    <div>
        <numAnimation :num="gamePoint" :suffix="'%'"></numAnimation>
    </div>
</template>

<script>
    import numAnimation from '@/components/numAnimation.vue';
    export default {
        data() {
            return {
                gamePoint: 10,
            }
        },
        components:{
            numAnimation
        }
    }
</script>

配置项:

参数说明示例
startVal开始值0
endVal结束值--
duration持续时间以毫秒为单位3000
autoplay自动播放true
decimals要显示的小数位数 0
decimal十进制分割
separator分隔符
prefix前缀 "
suffix后缀"
useEasing使用缓和功能 true
easingFn缓和回调  

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值