gpt4 book ai didi

javascript - VueJs - 动画数字变化

转载 作者:可可西里 更新时间:2023-11-01 01:21:54 25 4
gpt4 key购买 nike

我正在寻找使用 VueJs 制作数字变化动画。

例如我有:

{{ number }}

然后 number0 变为 100,我希望元素计数到 100 而不是而不是直接跳到它。

如果不使用除 VueJs 之外的任何第三方(纯 Js/VueJs),我将如何做到这一点?

最佳答案

让这个作为自定义组件工作:https://jsfiddle.net/5nobcLq0/5/

html

<body>
<input v-model="number">
<animated-number :number="number"></animated-number>
</body>

js

Vue.component('animated-number', {

template:"{{ displayNumber }}",
props: {'number': { default:0 }},

data () {
return {
displayNumber:0,
interval:false
}
},

ready () {
this.displayNumber = this.number ? this.number : 0;
},

watch: {
number () {
clearInterval(this.interval);

if(this.number == this.displayNumber) {
return;
}

this.interval = window.setInterval(() => {
if(this.displayNumber != this.number) {
var change = (this.number - this.displayNumber) / 10;
change = change >= 0 ? Math.ceil(change) : Math.floor(change);
this.displayNumber = this.displayNumber + change;
}
}, 20);
}
}
})

new Vue({
el:'body',
});

关于javascript - VueJs - 动画数字变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com