vue實(shí)現(xiàn)數(shù)字變換動(dòng)畫的示例代碼
最近開發(fā)項(xiàng)目的時(shí)候有個(gè)屏保的部分,就幾個(gè)數(shù)字覺得過于單調(diào),索性加點(diǎn)特效在里邊,UI圖數(shù)字部分如下:
emmm。所以加了個(gè)數(shù)字動(dòng)態(tài)變動(dòng)的效果
一開始直接在網(wǎng)上copy了一份。但是部分功能不太能滿足需求 ,so,改動(dòng)了部分,完美實(shí)現(xiàn)
改動(dòng)部分:
1.數(shù)字不需要千位符,但是為了防止以后要有 所以加了個(gè)參數(shù)判斷,默認(rèn)是沒有的
2.數(shù)字整數(shù)變動(dòng)
3.組件改為行內(nèi)元素,能更好的兼容頁面樣式
4.第二次數(shù)字變動(dòng)在上次的數(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>
就醬紫,完美實(shí)現(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實(shí)現(xiàn)數(shù)字變換動(dòng)畫的示例代碼的文章就介紹到這了,更多相關(guān)vue 數(shù)字變換動(dòng)畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實(shí)現(xiàn)文字上下滾動(dòng)動(dòng)畫的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用Vue實(shí)現(xiàn)超酷文字上下滾動(dòng)動(dòng)畫,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2024-03-03vue調(diào)用本地?cái)z像頭實(shí)現(xiàn)拍照功能
這篇文章主要介紹了vue調(diào)用本地?cái)z像頭實(shí)現(xiàn)拍照功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08默認(rèn)瀏覽器設(shè)置及vue自動(dòng)打開頁面的方法
今天小編就為大家分享一篇默認(rèn)瀏覽器設(shè)置及vue自動(dòng)打開頁面的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09基于vue3&element-plus的暗黑模式實(shí)例詳解
實(shí)現(xiàn)暗黑主題的方式有很多種,也有很多成型的框架可以直接使用,下面這篇文章主要給大家介紹了關(guān)于基于vue3&element-plus的暗黑模式的相關(guān)資料,需要的朋友可以參考下2022-12-12詳解Vue+ElementUI從零開始搭建自己的網(wǎng)站(一、環(huán)境搭建)
這篇文章主要介紹了Vue+ElementUI從零開始搭建自己的網(wǎng)站(一、環(huán)境搭建),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04vue之父子組件間通信實(shí)例講解(props、$ref、$emit)
組件間如何通信,也就成為了vue中重點(diǎn)知識了。這篇文章將會(huì)通過props、$ref和 $emit 這幾個(gè)知識點(diǎn),來講解如何實(shí)現(xiàn)父子組件間通信。2018-05-05