其实还是很简单的,直接上代码

<template>
  <div class="number-grow-warp">
    <span ref="numberGrow" class="number-grow">0</span>
  </div>
</template>

<script>
export default {
  props: {
    time: {
      type: Number,
      default: 2
    },
    value: {
      type: Number,
      default: 720000
    }
  },
  methods: {
    numberGrow(ele) {
      let _this = this;
      let duration = _this.time * 300; // 转换为毫秒
      let start = 0;
      let startTime = performance.now(); // 获取当前时间
      let t = requestAnimationFrame(function animate(time) {
        let elapsed = time - startTime; // 计算已经过去的时间
        start = Math.floor((_this.value * elapsed) / duration); // 根据时间计算当前值

        if (start >= _this.value) {
          start = _this.value;
          cancelAnimationFrame(t);
        }
        ele.innerHTML = start.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
        t = requestAnimationFrame(animate);
      });
    }
  },
  mounted() {
    this.numberGrow(this.$refs.numberGrow);
  }
};
</script>

<style>
.number-grow-warp {
  transform: translateZ(0);
}
</style>

引用

<number-grow :value="720000"></number-grow>

直接就搞定!!!!

GitHub 加速计划 / vu / vue-element-admin
87.26 K
30.42 K
下载
PanJiaChen/vue-element-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统模板,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统模板,可以方便地实现后台管理系统的快速搭建和定制,同时支持多种数据源和插件扩展。
最近提交(Master分支:2 个月前 )
0caa975e - 2 年前
cd3f7267 - 2 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐