vue實(shí)現(xiàn)數(shù)字滾動(dòng)效果
更新時(shí)間:2020年06月29日 11:20:44 作者:樂(lè)夫天命兮
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)數(shù)字滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了vue實(shí)現(xiàn)數(shù)字滾動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
<template>
<div class="num-block">
<div class="num-block_show">
<div class="num-block_numbers" :class="{'ellipsis': !isNum(item)}" v-for="(item, key) in numbers" :key="key">
<!-- <ul class="num-block_ul" :style="ulStyles(noNumbers(item, key))" v-if="isNum(item)"> -->
<ul class="num-block_ul" :style="ulStyles(item, key)" v-if="isNum(item)">
<!-- <li v-for="(opt, index) in noNumbers(item, key)" :key="index">
{{ opt }}
</li> -->
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
<div class="num-block_ellipsis" v-else>,</div>
</div>
</div>
<!-- <div style="position:absolute;top:250px;left:0">
{{ this.numbers }}
</div> -->
</div>
</template>
<script>
export default {
name: "ws-num-block",
props: ['data'],
data() {
return {
currentData: '10',
lastData: '10'
}
},
computed: {
numbers() {
let data = this.data;
if(!data) {
return
}
data = this.dealData(data);
return data;
}
},
watch: {
data(val){
let lastData = this.currentData;
this.currentData = this.dealData(val);
this.lastData = lastData;
}
},
methods: {
noNumbers(item, key) {
let lastData = this.lastData;
let lastItem = this.lastData[key];
let result = [];
lastItem = lastItem ? lastItem : '0';
if(lastItem != item) {
if(lastItem == ',' || item == ',') {
result.push(item);
return result;
}else {
let meal = 0;
if(Number(item) < Number(lastItem)) {
meal = Number(item) + 10 - Number(lastItem);
}else {
meal = Number(item) - Number(lastItem);
}
for(let i=0;i<meal+1;i++) {
if(Number(lastItem) > 9) {
lastItem = 0;
}
result.push(lastItem.toString());
lastItem++;
}
return result;
}
}else {
result.push(item);
return result;
}
},
// ulStyles(arr) {
ulStyles(item, key) {
// if(!arr) {
// return
// }
let top = 0;
// let currentTop = -26 * Number(arr.length-1);
let currentTop = -30 * Number(item);
top = currentTop + 'px';
// top = 0;
return {
'position': 'absolute',
'left': 0,
'top': top,
'width': '12px',
'list-style': 'none',
'padding': '0',
'margin': '0',
'transition': '1s'
}
},
isNum(val) {
return val == ',' ? false : true
},
dealData(val) {
let vals = val.toString().split('').reverse();
let dealData = [];
for(let i=0;i<vals.length;i++) {
if( i > 0 && i%3 == 0 ) {
dealData.push(',');
}
dealData.push(vals[i]);
}
dealData = dealData.reverse().join('');
return dealData;
}
}
};
</script>
<style lang="sass">
.num-block
width: 100%
height: auto
&_show
display: flex
justify-content: center
height: 30px
overflow: hidden
&_numbers
position: relative
width: 14px
&_numbers.ellipsis
width: 6px
&_ul>li
height: 30px
line-height: 30px
&_ellipsis
position: absolute
left: 0
top: 0
width: 6px
</style>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Vue3+TS實(shí)現(xiàn)數(shù)字滾動(dòng)效果CountTo組件
- Vue?transition組件簡(jiǎn)單實(shí)現(xiàn)數(shù)字滾動(dòng)
- vue3數(shù)據(jù)可視化實(shí)現(xiàn)數(shù)字滾動(dòng)特效代碼
- vue3實(shí)現(xiàn)數(shù)字滾動(dòng)特效實(shí)例詳解
- Vue組件實(shí)現(xiàn)數(shù)字滾動(dòng)抽獎(jiǎng)效果
- Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果
- 基于vue實(shí)現(xiàn)滾動(dòng)條滾動(dòng)到指定位置對(duì)應(yīng)位置數(shù)字進(jìn)行tween特效
- vue 實(shí)現(xiàn)數(shù)字滾動(dòng)增加效果的實(shí)例代碼
- Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動(dòng)效果實(shí)現(xiàn)
相關(guān)文章
vue3.0 vue.config.js 配置基礎(chǔ)的路徑問(wèn)題
這篇文章主要介紹了vue3.0 vue.config.js 配置基礎(chǔ)的路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
基于Vuejs實(shí)現(xiàn)購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了基于Vuejs實(shí)現(xiàn)購(gòu)物車功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
element?實(shí)現(xiàn)導(dǎo)航欄收起展開(kāi)功能及思路
這篇文章主要介紹了element?實(shí)現(xiàn)導(dǎo)航欄收起展開(kāi)功能,實(shí)現(xiàn)思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個(gè)屬性也是 element 上的一個(gè)參數(shù),意思為是否開(kāi)啟折疊動(dòng)畫(huà),在 data 中定義 isCollapse ,用 true 和 false 控制展開(kāi)與收起,需要的朋友可以參考下2023-01-01
詳解在vue-cli項(xiàng)目中使用mockjs(請(qǐng)求數(shù)據(jù)刪除數(shù)據(jù))
本篇文章主要介紹了在vue-cli項(xiàng)目中使用mockjs(請(qǐng)求數(shù)據(jù)刪除數(shù)據(jù)),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
SpringBoot+Vue3實(shí)現(xiàn)上傳文件功能
這篇文章主要介紹了SpringBoot+Vue3實(shí)現(xiàn)上傳文件功能,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01

