vue实现数字变换动画的示例代码

 更新时间:2022年04月17日 11:02:50   作者:kk189  
本文主要介绍了vue实现数字变换动画的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近开发项目的时候有个屏保的部分,就几个数字觉得过于单调,索性加点特效在里边,UI图数字部分如下:

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>

就酱紫,完美实现。

引用如下:

<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实现数字变换动画的示例代码的文章就介绍到这了,更多相关vue 数字变换动画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ant design pro中可控的筛选和排序实例

    ant design pro中可控的筛选和排序实例

    这篇文章主要介绍了ant design pro中可控的筛选和排序实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue+element多选级联选择器自定义props使用详解

    vue+element多选级联选择器自定义props使用详解

    这篇文章主要给大家介绍了关于vue+element多选级联选择器自定义props使用的相关资料,级联选择器展示的结果都是以数组的形式展示,也就是v-model绑定的结果,需要的朋友可以参考下
    2023-07-07
  • vuex中store存储store.commit和store.dispatch的用法

    vuex中store存储store.commit和store.dispatch的用法

    这篇文章主要介绍了vuex中store存储store.commit和store.dispatch的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue中axios利用blob实现文件浏览器下载方式

    vue中axios利用blob实现文件浏览器下载方式

    这篇文章主要介绍了vue中axios利用blob实现文件浏览器下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • element ui 对话框el-dialog关闭事件详解

    element ui 对话框el-dialog关闭事件详解

    下面小编就为大家分享一篇element ui 对话框el-dialog关闭事件详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • 在antd中setFieldsValue和defaultVal的用法

    在antd中setFieldsValue和defaultVal的用法

    这篇文章主要介绍了在antd中setFieldsValue和defaultVal的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue中使用Tailwind CSS的具体方法

    Vue中使用Tailwind CSS的具体方法

    本文主要介绍了Vue中使用Tailwind CSS的具体方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue渲染时闪烁{{}}的问题及解决方法

    vue渲染时闪烁{{}}的问题及解决方法

    v-if和v-show可能是日常开发中最常用的两个指令,虽然看上去两者功能是类似的,但是两者还是存在很大区别的。接下来通过本文给大家分享vue渲染时闪烁{{}}的问题及解决方法,感兴趣的朋友一起看看吧
    2018-03-03
  • Vue3父子组件传参有关sync修饰符的用法详解

    Vue3父子组件传参有关sync修饰符的用法详解

    这篇文章主要给大家介绍关于前端Vue3父子组件传参有关sync修饰符的用法详细解析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • 使用Plotly.js在Vue中创建交互式散点图的示例代码

    使用Plotly.js在Vue中创建交互式散点图的示例代码

    Plotly.js是一个功能强大的JavaScript库,用于创建交互式数据可视化,它支持各种图表类型,包括散点图、折线图和直方图,在Vue.js应用程序中,Plotly.js可用于创建动态且引人入胜的数据可视化,本文介绍了使用Plotly.js在Vue中创建交互式散点图,需要的朋友可以参考下
    2024-07-07

最新评论