有個實現數字滾動的需求,想着確定有不少這種效果的插件,就不本身造輪子了,因而,找了個numberAnimate js數字滾動插件,還挺好用,很簡單,恰好符合需求。javascript
代碼以下:css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>數字滾動插件</title> <link rel="stylesheet" type="text/css" href="../dist/style/numberAnimate.css" /> </head> <body> 無分隔符,無小數點:<div class="numberRun"></div><br><br> </body> <script src="http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="../dist/script/numberAnimate.js"></script> <script type="text/javascript"> $(function(){ //初始化 var numRun = $(".numberRun").numberAnimate({num:'1553093', speed:1000}); //想要的是過一段時間加1的效果,能夠實現 var nums = 1553093; setInterval(function(){ nums+= 1; numRun.resetData(nums); },2000); }) </script> </html>
想要的效果是過一段時間加1的效果,能夠實現,可是有個小小的bug
,那就是,好比說,個位數字加到9時進一位而後該位上爲0,問題來了,這裏0的數字卻滾動不出來,直接到了下一個時間間隔時滾動到了11,調試了好久發現,是numberAnimate.js
中,第85行的判斷條件有問題,註釋掉該if判斷就行了,以下圖:
html
上圖中,第85行的$(this).css("top")
一直都是0px
,而第84行計算獲取到的thisTop
在數字滾到到0 時值爲0px
,因此致使直接跳過了判斷,沒有執行到transform
動畫那裏,因此少了0的效果,致使看起來的效果就是9直接跳到了11,沒有10。java
另外,提示一句,改變數字的字號大小,須要修改的numberAnimate.css
中的height、width、字號
的比例要把握好,一不當心就壞了,呵呵,親身體會 -_-||jquery