• js自定义数字跳动效果computeNumber


    <!--
     * @Author: your name
     * @Date: 2020-03-29 10:37:57
     * @LastEditTime: 2020-03-29 10:42:43
     * @LastEditors: Please set LastEditors
     * @Description: In User Settings Edit
     * @FilePath: lwnhwyfrontsrccomponentscomputeNumber.vue
     -->
    <template>
      <div id="demo">
        <div class="nwwest-roll" :style="{'height': styleHeight + 'px'}" id="nwwest-roll">
          <ul id="roll-ul" class="roll-ul">
            <li v-for="(item, index) in list" :style="{'height': styleHeight + 'px'}" ref="rollul" class="rollLi" :key="index" :class="{anim:animate==true}">
              <span class="name">{{item}}</span>
            </li>
          </ul>
        </div>
      </div>
    </template>
    <script>
      export default {
        props: {
          number: {
            type: [String, Number],
            default: ''
          },
          styleHeight: {
            type: Number,
            default: 0
          },
          autoplay: {
            type: Boolean,
            default: false
          }
        },
        watch: {
          number (newValue, oldValue) {
            if( newValue !== oldValue ) {
              this.list[1] = newValue
              this.list[0] = oldValue
              this.num = newValue;
              this.scroll(this.number);
            }
          }
        },
        data () {
          return {
            animate: true,
            list: [this.number, this.number],
            num: this.number,
            newNum: this.number,
            timeout: '',
            timeInterval: ''
          }
        },
        mounted () {
          if( this.autoplay ) {
            this.timeInterval = setInterval(() => {
              this.scroll(this.number);
            }, 4000);
          }
        },
        beforeDestroy() {
          clearInterval(this.timeout)
          clearInterval(this.timeInterval)
        },
        methods: {
          scroll(num){
            let con1 = this.$refs.rollul;
            /* styleHeight */
            // let marginTopHeight = (this.styleHeight - 10) + 'px'
            con1[0].style.marginTop = 0;
            this.animate = !this.animate;
            var that = this;
            that.timeout = setTimeout(() =>{
              that.list[1] = num
              con1[0].style.marginTop = -this.styleHeight + 'px';
              that.animate = !that.animate;
              setTimeout(() => {
                that.list[0] = num
              }, 1000);
            }, 80)
          }
        }
      }
    </script>
    <style lang="" scoped>
      .nwwest-roll {
        overflow: hidden;
      }
      .nwwest-roll .name{
        display: inline-block;
      }
    
      .roll-ul {
        list-style: none;
        padding: 0;
        margin: 0;
      }
      .anim {
        transition: all 1s;
      }
    </style>

    页面使用:xxx.vue页面

     
            JS:import computeNumber from "@/components/computeNumber.vue";
                HTML:<div class="f45">
                  <compute-number autoplay :styleHeight="45" :number="huAll"></compute-number>
                </div>



  • 相关阅读:
    用R语言中的神经网络预测时间序列:多层感知器和极限学习机
    R语言SIR模型(Susceptible Infected Recovered Model)代码sir模型实例
    confirmit中 domainValues() 方法
    confirmit中indexOf()方法
    confitmit中none()方法
    confirmit中any()方法参数问题
    confirmit中方法调用的数组之sort()区别
    confirmit平台问题汇总
    confirmit中创建的 if 判断条件的区别
    专业名称解释笔记
  • 原文地址:https://www.cnblogs.com/soonK/p/14999807.html
Copyright © 2020-2023  润新知