• vue 数字翻牌组件


    <template>
      <em>{{numvalue}}
      </em>
    </template>
    <script>
    export default {
      props: ['val'],
      data () {
        return { oldvalue: 0, numvalue: 0 }
      },
      methods: {
        numFun (startNum, maxNum) {
          var that = this
          let numText = startNum;
          let addnum = Math.floor((maxNum - startNum) / 10) //10代表数字变化时最大跳动次数
          let golb; // 为了清除requestAnimationFrame
          function numSlideFun () { // 数字动画
            numText += addnum; // 速度的计算可以为小数 。数字越大,滚动越快
            if (numText >= maxNum) {
              numText = maxNum;
              cancelAnimationFrame(golb);
            } else {
              setTimeout(function () {
                golb = requestAnimationFrame(numSlideFun);
              }, 200);//200代表翻牌的频率
            }
            that.numvalue = numText
            // console.log(numText)
          }
          function subtractlideFun () { // 数字动画
            numText += addnum; // 速度的计算可以为小数 。数字越大,滚动越快
            if (maxNum >= numText) {
              numText = maxNum;
              cancelAnimationFrame(golb);
            } else {
              setTimeout(function () {
                golb = requestAnimationFrame(subtractlideFun);
              }, 200);
            }
            that.numvalue = numText
            // console.log(numText)
          }
          if (startNum < maxNum) {
            numSlideFun(); // 递增数字翻牌
          } else {
            subtractlideFun(); // 递减数字翻牌
          }
        }
    
      },
      watch: {
        val (value) {
          if (value === undefined) {
            this.numvalue = 0
            this.oldvalue = value
          } else {
            if (this.oldvalue === 0) {
              this.numvalue = value;
              this.oldvalue = value
            } else {
              this.numFun(this.oldvalue, value)
              this.oldvalue = value
            }
          }
        }
      }
    }
    </script>

    最近做大屏展示,因为数字非常大到亿以上,要用到数字滚动功能,网上找的都不如意,翻滚的时间久,跳动太快不可控,就自己写了一个。

  • 相关阅读:
    6.7-CU微程序设计
    6.6-CU组合逻辑设计
    6.5-CU的功能
    6.4-微操作命令的分析
    6.3-时序产生器
    6.2-指令的执行
    6.1-CPU的组成与功能
    5.3-指令格式设计
    【Java循环使用 + JS循环】
    JSON转换集合,报错exepct '[', but {, pos 1, json或者syntax error, expect {, actual [, pos 0
  • 原文地址:https://www.cnblogs.com/PlatformSolution/p/15580255.html
Copyright © 2020-2023  润新知