vue實現(xiàn)數(shù)字變換動畫的示例代碼
最近開發(fā)項目的時候有個屏保的部分,就幾個數(shù)字覺得過于單調(diào),索性加點(diǎn)特效在里邊,UI圖數(shù)字部分如下:

emmm。所以加了個數(shù)字動態(tài)變動的效果
一開始直接在網(wǎng)上copy了一份。但是部分功能不太能滿足需求 ,so,改動了部分,完美實現(xiàn)
改動部分:
1.數(shù)字不需要千位符,但是為了防止以后要有 所以加了個參數(shù)判斷,默認(rèn)是沒有的
2.數(shù)字整數(shù)變動
3.組件改為行內(nèi)元素,能更好的兼容頁面樣式
4.第二次數(shù)字變動在上次的數(shù)字累加
5.添加監(jiān)聽器防止頁面不更新的情況
代碼如下:
<template>
<span class="number-grow-warp">
<span ref="numberGrow" :data-time="time" class="number-grow" :data-value="value">0</span>
</span>
</template>
<script>
export default {
name:'numberGrow',
props: {
time: {
type: Number,
default: 2
},
value: {
type: Number,
default: 0
},
thousandSign:{
type: Boolean,
default:()=>false
}
},
data(){
return{
oldValue:0
}
},
watch:{
value:function(value,oldValue){
this.numberGrow(this.$refs.numberGrow)
}
},
methods: {
numberGrow (ele) {
let _this = this
let value = _this.value - _this.oldValue
let step = (value * 10) / (_this.time * 100)
let current = 0
let start = _this.oldValue
let t = setInterval(function () {
start += step
if (start > _this.value) {
clearInterval(t)
start = _this.value
t = null
}
if (current === start) {
return
}
current = parseInt(start)
_this.oldValue = current
if(_this.thousandSign){
ele.innerHTML = current.toString().replace(/(\d)(?=(?:\d{3}[+]?)+$)/g, '$1,')
}else{
ele.innerHTML = current.toString()
}
}, 10)
}
},
mounted () {
this.numberGrow(this.$refs.numberGrow)
}
}
</script>
<style lang="less" scoped>
.number-grow-warp{
transform: translateZ(0);
}
</style>
就醬紫,完美實現(xiàn)。

引用如下:
<template>
<div>
<numberGrow :value="toNowGantryNum" :time='30'></numberGrow>
</div>
</template>
<script>
import numberGrow from '@/components/numberGrow/index.vue'
export default {
name:'monitor',
components:{numberGrow},
data(){
return{
toNowGantryNum:1068319425,
}
},
}
</script>到此這篇關(guān)于vue實現(xiàn)數(shù)字變換動畫的示例代碼的文章就介紹到這了,更多相關(guān)vue 數(shù)字變換動畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue如何給組件添加點(diǎn)擊事件?@click.native
這篇文章主要介紹了Vue如何給組件添加點(diǎn)擊事件?@click.native,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
vue中el-table格式化el-table-column內(nèi)容的三種方法
本文主要介紹了vue中el-table格式化el-table-column內(nèi)容的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
使用vue-cli創(chuàng)建項目并webpack打包的操作方法
本文給大家分享使用vue-cli創(chuàng)建項目基于webpack模板打包的配置方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-07-07
解決element-ui里的下拉多選框 el-select 時,默認(rèn)值不可刪除問題

