当前位置:首页 > VUE

vue实现数字递增滚动

2026-01-21 19:10:18VUE

Vue 实现数字递增滚动效果

在 Vue 中实现数字递增滚动效果可以通过多种方式完成,以下提供两种常见方法:

使用定时器和计算属性

<template>
  <div>{{ animatedNumber }}</div>
</template>

<script>
export default {
  data() {
    return {
      targetNumber: 1000,
      currentNumber: 0,
      animationDuration: 2000,
      startTime: null
    }
  },
  computed: {
    animatedNumber() {
      return Math.floor(this.currentNumber)
    }
  },
  mounted() {
    this.animateNumber()
  },
  methods: {
    animateNumber(timestamp) {
      if (!this.startTime) this.startTime = timestamp
      const progress = Math.min((timestamp - this.startTime) / this.animationDuration, 1)
      this.currentNumber = progress * this.targetNumber
      if (progress < 1) {
        requestAnimationFrame(this.animateNumber)
      }
    }
  }
}
</script>

使用第三方库(如 vue-count-to)

安装 vue-count-to 库:

npm install vue-count-to --save

使用示例:

<template>
  <count-to :start-val="0" :end-val="1000" :duration="2000"></count-to>
</template>

<script>
import CountTo from 'vue-count-to'
export default {
  components: { CountTo }
}
</script>

自定义过渡效果

可以通过 CSS 过渡增强视觉效果:

.number-transition {
  transition: all 0.5s ease-out;
}

结合 Vue 的 transition 组件:

<transition name="number-transition">
  <div :key="animatedNumber">{{ animatedNumber }}</div>
</transition>

注意事项

  • 性能优化:对于大量数字动画,考虑使用 requestAnimationFrame
  • 格式化:可使用 toLocaleString() 方法添加千位分隔符
  • 中断处理:组件销毁时应清除动画帧请求

以上方法可根据具体需求选择,第三方库方案更简单快捷,自定义实现则更灵活可控。

vue实现数字递增滚动

标签: 数字vue
分享给朋友:

相关文章

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使…

vue实现文档分享

vue实现文档分享

Vue 实现文档分享功能 文档分享功能通常涉及文件上传、存储、生成分享链接以及权限控制等模块。以下是基于 Vue 的实现方案: 文件上传组件 使用 element-ui 或 ant-design-…

vue的动画实现

vue的动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要通过内置组件和第三方库支持。 使用 Vue 内置过渡组件 Vue 的 transition 和 transition-group 组件可…

vue实现a4打印模板

vue实现a4打印模板

使用Vue实现A4打印模板 在Vue中实现A4打印模板需要结合CSS的打印样式和Vue的模板渲染能力。以下是具体实现方法: 设置A4纸张尺寸 在CSS中定义A4纸张的标准尺寸(210mm × 29…

vue实现视窗

vue实现视窗

Vue 实现视窗功能 在 Vue 中实现视窗功能通常涉及监听浏览器窗口大小变化、响应式布局或创建自定义弹窗组件。以下是几种常见实现方式: 监听浏览器窗口大小变化 使用 Vue 的 mounted 和…

vue datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vu…