moving-numbers-vue3

大屏数字滚动组件:数字平滑滚动、翻牌动画,适合数据大屏、驾驶舱、统计面板(Vue3)
1,789
Install
npm install moving-numbers-vue3
Latest Version:2.0.2
Older releases:3
License:MIT
Last Updated:Oct 23, 2026
Links: npm
Maintainer: 9mountain

moving-numbers-vue3

数据大屏 / 驾驶舱 / 统计面板的数字滚动、翻牌动画组件(Vue3)——数字从旧值平滑滚动到新值,支持快增、逐位定变轮盘、CSS 滚动三种模式,可选分位逗号与数字格。

English: Vue3 animated number component for data dashboards & cockpit displays — smooth count-up, digit-roll and CSS-scroll modes, thousand separators and digit cells. Zero dependencies.

会动的数字

快速开始

npm i moving-numbers-vue3 -S

快速应用

全局注入
import movingNumbers from 'moving-numbers-vue3';
import 'moving-numbers-vue3/index.css'; // ⚠️ 样式需手动引入
app.use(movingNumbers);
局部注入
import MovingNumbersLib from 'moving-numbers-vue3';
import 'moving-numbers-vue3/index.css';
// 注:产物为 default 导出,具名导入依赖 CJS 互操作、部分构建工具(如 Vite)下不可靠,请 default 导入后解构
const { MovingNumbers } = MovingNumbersLib;

TypeScript 与 AI 支持

  • 自带 index.d.ts 类型声明(package.json types 字段已配置),安装后编辑器/AI 直接获得完整类型提示。
  • 配套 AI.md:面向 AI 助手的使用指南(API 速查、最小示例、典型错误对照),AI 编码工具可直接读取。

与同类的区别(选型参考)

对比对象 选择本包的理由
countup.js / gsap 等动画库 它们是动画库,数字组件需要自己封装;本包是现成 Vue3 组件,<MovingNumbers> 拿来即用
其他 Vue 数字滚动组件 三模式(快增 / 逐位定变轮盘 / CSS 滚动)+ 分位逗号(人民币 / 美元)+ 数字格背景,一个组件覆盖常见大屏需求
大屏组件库 独立轻量单组件、零依赖、按需引入,不绑整套大屏框架,可嵌进任意现有项目

适用:数据大屏、驾驶舱、统计面板的金额 / 总量 / 指标跳动展示。 不适用:需要精确数字格式化(可看 ljs-tools 的 $LJSnum);需要事件回调 / 插槽(纯展示组件);SSR 场景。

主参数

参数 类型 必填项 默认值 参考值 说明
mNum Number 或 String √ 要显示 / 滚动到的目标数字。
mode String × fast fast:快增;fix:定变;scroll:滚动; 计算模式。
decimal Number × 8 小数位限制,仅当数据小数位位数大于指定数字时截断处理。
quantileShow Boolean × false 分位符号是否显示。
quantileType Number × 4 分位符号类型:人民币:4位分割;美元:3位分割。
itemBg String × 每个数字:背景。
itemWidth String × 每个数字:宽度。
itemHeight String × 每个数字:高度。
fontSize Number × 14 字体大小。
示例 1:快增(默认)+ 分位逗号
<template>
  <MovingNumbers class="c1" :m-num="movingNumber" :quantile-show="true" />
</template>

<script setup>
import { ref, onMounted } from 'vue';
import MovingNumbersLib from 'moving-numbers-vue3';
import 'moving-numbers-vue3/index.css';

const MovingNumbers = MovingNumbersLib.MovingNumbers;
const movingNumber = ref(0);

onMounted(() => {
  setInterval(() => {
    movingNumber.value = (Math.random() * 1000000).toFixed(6);
  }, 5000);
});
</script>
示例 2:逐位定变(fix)+ 美元分位
<MovingNumbers
  class="c2"
  :m-num="movingNumber"
  mode="fix"
  :decimal="3"
  :quantile-show="true"
  :quantile-type="3" />

(其余写法同示例 1)

示例 3:CSS 滚动(scroll)
<MovingNumbers
  class="c3"
  :m-num="movingNumber"
  mode="scroll"
  :decimal="4"
  :quantile-show="true" />

(其余写法同示例 1;⚠️ mode 初始化后不可切换,三种模式同时展示时请各渲染一个组件)

Related Packages

@ued_fpi/data-visual

@ued_fpi/data-visual 基于Vite4+TypeScript的Vue3大屏组件库开发框架

14,444
v-odometer

Odometer VusJS component

7,778 101
vue-odometer

Vue.js(v2.x+) component wrap for Odometer.js

292,166 62
v-scale-screen

vue3大屏自适应组件

38,553 1,287

Version History

Version Released Vue License
2.0.2 MIT
2.0.1 MIT
2.0.0 MIT
1.2.1 MIT
1.2.0 MIT