tween.js实现数字过渡

  • Post author:
  • Post category:其他




下载tween.js

npm install --save @tweenjs/tween.js



以下是写好的vue组件

<template>
  <span>{{numTween}}</span>
</template>

<script>
import TWEEN from '@tweenjs/tween.js'
export default {
  name: 'Tween',
  props: {
    num: {
      type: [Number, String],
      default: 0
    },
    t: {
      type: Number,
      default: 1000
    }
  },
  data () {
    return {
      numTween: 0
    }
  },
  methods: {
    changeNum(newValue, oldValue){
      new TWEEN.Tween({
        number: oldValue
      })
        .to({
          number: newValue
        }, this.t)
        .onUpdate(tween => {
          this.numTween = tween.number.toFixed(0)
        })
        .start();
      function animate() {
        if (TWEEN.update()) {
          requestAnimationFrame(animate);
        }
      }
      animate()
    }
  },
  watch: {
    num (newValue, oldValue) {
      this.changeNum(newValue, oldValue)
    }
  },
  created() {
    this.changeNum(this.num, 0)
  }
}
</script>

num: 需要过渡的数字,支持动态数字

t: 过渡时间,单位毫秒



版权声明:本文为weixin_43840202原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。