实现数字跳转到指定数字 react

528 阅读1分钟

前言

最近看到字节流量官网,想要仿照自己写一个数字跳动的效果,虽然自己也可以用定时器实现,但是比较麻烦,想了想去网上找相关的轮子,这里整理出来方便后面的同学使用,如果对你有帮助的话,可以点个赞鼓励一下我嘛哈哈哈。

要实现的效果我放在这里了:

11_.gif

数字滚动插件

use-animate-number

  • 下载:npm i use-animate-number

  • 引入:import useAnimateNumber from 'use-animate-number';

  • 使用:

    • 调用setValue就会产生动画效果,在调用setValue可以临时传递参数
 const Component = () => {
 ​
 const options = {
   duration: 1000,
   enterance: true,
   direct: false,
   disabled: false,
   decimals: 2;
 }
   const [value, setValue] = useAnimateNumber(0, options)
   
   // 或者直接写进去
   const [click, setClick] = useAnimateNumber(0, {decimals: 0})
   
   return <span>value</span>
 }
 ​
 // demo
 const [value, setValue] = useAnimateNumber(0);
 setCurrentValue(0, true); // It will instantly set the value as 0 in no time
  • 参数详解:

    NameTypeDefaultDescription
    durationnumber1000数字滚动时长
    enterancebooleantrue从零开始滚动
    directbooleanfalse如果不需要额外的逻辑,可以通过设置direct选项忽略使用update函数
    disabledbooleanfalse禁止使用动画
    decimalsnumber2小数位长度