jquery實現數字滾動動畫特效


HTML

我們首先載入jQuery庫文件和動畫背景插件:animateBackground-plugin.js。

 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/animateBackground-plugin.js"></script> 

然后我們在頁面適當的位置中加入要展示數字滾動效果的html元素。

 
<div id="total"> 
   下載量:<span class="t_num"></span>次 
</div> 

jQuery

首先來寫一個函數show_num(),該函數用來實現動態滾動數字。我們將統計數字n進行拆分成一個個單獨的數字,這些數字用<i></i>包圍,通過調用插件backgroundPosition將圖片定位到對應的每個數字上。

 
function show_num(n){ 
    var it = $(".t_num i"); 
    var len = String(n).length; 
    for(var i=0;i<len;i++){ 
        if(it.length<=i){ 
            $(".t_num").append("<i></i>"); 
        } 
        var num=String(n).charAt(i); 
        var y = -parseInt(num)*30; //y軸位置 
        var obj = $(".t_num i").eq(i); 
        obj.animate({ //滾動動畫 
            backgroundPosition :'(0 '+String(y)+'px)'  
            }, 'slow','swing',function(){} 
        ); 
    } 
} 

 

 

接着,我們通過ajax獲取后台最新的下載次數。下面的代碼是一個常見的jQuery的ajax請求,通過post請求到data.php,data.php或獲取最新的下載次數,處理成功后則得到下載次數:data.count,然后調用show_num()實現數字滾動。

 
function getdata(){ 
    $.ajax({ 
        url: 'data.php', 
        type: 'POST', 
        dataType: "json", 
        cache: false, 
        timeout: 10000, 
        error: function(){}, 
        success: function(data){ 
            show_num(data.count); 
        } 
       }); 
} 

 

 

最后,我們在頁面加載完后要初始化數據,然后每隔3秒鍾執行一次ajax請求,更新下載次數:

 
$(function(){ 
    getdata(); 
    setInterval('getdata()', 3000);//每隔3秒執行一次 
}); 

 

 

類似可以在統計網站訪問量、統計影片播放次數、倒計時等方面得到應用,至於后台data.php如何處理數據不在本文敘述范圍內,有興趣的同學可以自己寫一個諸如計數器之類的后台程序來返回data.count。

轉載自:helloweba.com

這篇文章中的核心是show_num()函數,它完美實現了計時器每次執行后怎么動態改變數字的每一位數字,想當初自己寫的,我使用if else語句來依此判斷個位、十位、百位…是否進位,真的是糟糕透了!主要是不知道有charAt()這個方法。

總之值得借鑒,但這篇文章中給backgroundPosition設置animate動畫,盡管特意引入animateBackground-plugin.js插件,但實際測試還是失效,不知道是不是jquery版本的問題。

解決辦法:換一種思路。可以把追加的<i>元素改成<img>元素,並給img相對定位,給img的top值設置動畫就可以完美解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM