数字从0增加到指定数字的动画效果

这里使用的是next,js 框架

  import {React,{useEffect,useState,useRef}} from "react"
  
  function Default() {
     const [total,setTotal] = useState(155342) // 定义total 变量,数据类型为 number
     
     useEffect(()=>{
       numZeroIncrease()
     },[total]) // 监听 total变量的变化
     
     // 数字从0增加动画效果
    const numZeroIncrease = () => {
       const awardNode = document.querySelectorAll("#award_total_node"); // 获取到 奖池累计节点
       if (awardNode?.length) {
          awardNode.forEach((node) => {
            node.innerText = 0;
            const updateNumber = () => {
              // 获取最大值
              const maxNum = fishPool; // 奖池累计数量
              const currentVal = Number(node.innerText); // 获取当前值
              const increaseNum = maxNum / 200; // 每次设置的增加值

              // 当前值 小于 最大值时,执行操作
              if (currentVal < maxNum) {
                node.innerText = `${Math.ceil(currentVal + increaseNum)}`;
                setTimeout(updateNumber, 1); // 设置延迟,1ms 执行一次
              } else {
                node.innerText = maxNum;
              }
            };
            updateNumber();
          });
       }
    };
    
    return(
       <div className={root_node}>
         <section id="award_total_node">{total}</section>
       </div>
    )
  }
  export default Default
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值