vue.js如何实现数字滚动增加效果?代码示例

vue.js如何实现数字滚动增加效果?代码示例插图

 

项目中需要做数字滚动增加的效果,一开始很懵,研究了一下原理,发现很简单,贴出来分享一下 ^_^

数字滚动组件:

<template>
    <p class="number-grow-warp">
        <span ref="numberGrow" :data-time="time" class="number-grow" :data-value="value">0</span>
    </p>
</template> 
<script> export default {
    props: {
        time: {
            type: Number,
            default: 2
        },
        value: {
            type: Number,
            default: 720000
        }
    },
    methods: {
        numberGrow (ele) {
            let _this = this
            let step = (_this.value * 10) / (_this.time * 1000)
            let current = 0
            let start = 0
            let t = setInterval(function () {
                start += step
                if (start > _this.value) {
                    clearInterval(t)
                    start = _this.value
                    t = null
                }
                if (current === start) {
                    return
                }
                current = start
                ele.innerHTML = current.toString().replace(/(d)(?=(?:d{3}[+]?)+$)/g, '$1,')
            }, 10)
        }
    },
    mounted () {
        this.numberGrow(this.$refs.numberGrow)
    }
}
</script> 
<style>
.number-grow-warp{
    transform: translateZ(0);
}
.number-grow {
    font-family: Arial-BoldMT;
    font-size: 64px;
    color: #ffaf00;
    letter-spacing: 2.67px;
    margin:110px 0 20px;
    display: block;
    line-height:64px;
}
</style>

调用:

<NumberGrow :value="720000"></NumberGrow>

 

 

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » vue.js如何实现数字滚动增加效果?代码示例

发表评论

  • 1809本站运营(天)
  • 1945会员数(个)
  • 5310资源数(个)
  • 1287评论数(个)
  • 0 近 30 天更新(个)
加入 VIP