1. 程式人生 > 程式設計 >js實現數字跳動到指定數字

js實現數字跳動到指定數字

本文例項為大家分享了js實現數字跳動到指定數字的具體程式碼,供大家參考,具體內容如下

執行結果如下:

js實現數字跳動到指定數字

<!DOCTYPE html>
 <head>
 <title>js實現數字跳動到指定數字</title>
 <style>
  h1 {font-size: 150px;text-align:center;}
  p {text-align:center;}
  button {font-size:40px;}
 </style>
 </head>
 <body>
 <h1 id="number">0</h1>
 <p>
  <button onclick="start()">開始計數</button>
 </p>
 </body>
 <script>
 /*
 * startNum 代表要跳動的初始數字
 * targetNum 代表要跳動到的數字
 * time  代表要跳動需要花費的時間
 * selector 代表要跳動元素的選擇器
 */
 const $setJumpNumber = (startNum,targetNum,time = 1,selector) => {
  let dom = document.querySelector(selector);
  let originNum = startNum;
  let stepNum = 0;
  let timeNum = time; 
  dom.innerHTML = startNum;
 
  let timeId = setInterval(() => {
  if (originNum < targetNum) {
   timeNum -= 0.001;
   let strNum = originNum.toString();
   // 數字比較少的時候直接用 + 1; 數字很大直接 +1 要很久才能調到最對應的數字,所有後三位數隨機跳動的方式進行模擬生成
   if (targetNum.toString().length < 6) {
   stepNum += 1; // 這樣才可以實現越跳越快的效果
   originNum = originNum + stepNum;
   dom.innerHTML = originNum;
   } else {
   stepNum += 500; // 這樣才可以實現越跳越快的效果
   originNum = originNum + stepNum;
   dom.innerHTML = strNum.substr(0,strNum.length - 3) + Math.floor(Math.random()*10) + Math.floor(Math.random()*10) + Math.floor(Math.random()*10);
   }
  } else {
   dom.innerHTML = targetNum;
   clearInterval(timeId);
  }
  },timeNum);
 };
 
 function start () {
  $setJumpNumber(11,218983423,1,'h1');
 };
 
 </script>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。