中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue怎么實現數字變換動畫

發布時間:2022-04-18 10:37:05 來源:億速云 閱讀:1018 作者:zzz 欄目:開發技術

今天小編給大家分享一下vue怎么實現數字變換動畫的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

UI圖數字部分如下:

vue怎么實現數字變換動畫

emmm。所以加了個數字動態變動的效果

一開始直接在網上copy了一份。但是部分功能不太能滿足需求 ,so,改動了部分,完美實現

改動部分:

1.數字不需要千位符,但是為了防止以后要有 所以加了個參數判斷,默認是沒有的

2.數字整數變動

3.組件改為行內元素,能更好的兼容頁面樣式

4.第二次數字變動在上次的數字累加

5.添加監聽器防止頁面不更新的情況

代碼如下:

<template>
    <span class="number-grow-warp">
        <span ref="numberGrow" :data-time="time" class="number-grow" :data-value="value">0</span>
    </span>
</template>

<script>
export default {
  name:'numberGrow',
  props: {
    time: {
      type: Number,
      default: 2
    },
    value: {
      type: Number,
      default: 0
    },
    thousandSign:{
        type: Boolean,
        default:()=>false
    }
  },
  data(){
    return{
      oldValue:0
    }
  },
  watch:{
    value:function(value,oldValue){
      this.numberGrow(this.$refs.numberGrow)
    }
  },
  methods: {
    numberGrow (ele) {
      let _this = this
      let value = _this.value - _this.oldValue
      let step = (value * 10) / (_this.time * 100)
      let current = 0
      let start = _this.oldValue
      let t = setInterval(function () {
        start += step
        if (start > _this.value) {
          clearInterval(t)
          start = _this.value
          t = null
        }
        if (current === start) {
          return
        }
        current = parseInt(start)
        _this.oldValue = current
        if(_this.thousandSign){
            ele.innerHTML = current.toString().replace(/(\d)(?=(?:\d{3}[+]?)+$)/g, '$1,')
        }else{
            ele.innerHTML = current.toString()
        }
      }, 10)
    }
  },
  mounted () {
    this.numberGrow(this.$refs.numberGrow)
  }
}
</script>

<style lang="less" scoped>
.number-grow-warp{
  transform: translateZ(0);
}
</style>

就醬紫,完美實現。

vue怎么實現數字變換動畫

引用如下:

<template>
  <div>
      <numberGrow :value="toNowGantryNum" :time='30'></numberGrow>  
  </div>
</template>

<script>
import numberGrow from '@/components/numberGrow/index.vue'
export default {
    name:'monitor',
    components:{numberGrow},
    data(){
        return{
            toNowGantryNum:1068319425,
        }
    }, 
}
</script>

以上就是“vue怎么實現數字變換動畫”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

台北市| 苗栗市| 原阳县| 牡丹江市| 阳信县| 中江县| 荥经县| 新余市| 宁城县| 凤山市| 永德县| 舟山市| 汾阳市| 彩票| 大竹县| 林甸县| 沧州市| 灵台县| 沅江市| 山东省| 桃源县| 新建县| 长乐市| 屏南县| 双城市| 呼和浩特市| 大厂| 德令哈市| 元江| 习水县| 资阳市| 淮阳县| 周口市| 伊宁县| 巧家县| 靖安县| 西吉县| 尤溪县| 潞西市| 邢台县| 桐柏县|