有時(shí)我們需要?jiǎng)討B(tài)的展示訪問(wèn)次數(shù)、下載次數(shù)等效果,我們可以借助jQuery結(jié)合后臺(tái)php實(shí)現(xiàn)一個(gè)滾動(dòng)的數(shù)字展示效果。
本文以實(shí)時(shí)獲取某產(chǎn)品的下載次數(shù)為場(chǎng)景,前臺(tái)定時(shí)執(zhí)行javascript獲取最新的下載次數(shù),并滾動(dòng)更新頁(yè)面上的下載次數(shù)。
HTML
我們首先載入jQuery庫(kù)文件和動(dòng)畫(huà)背景插件:animateBackground-plugin.js。
<script type="text/javascript" src="http://www.gimoo.net/t/1904/js/jquery.js"></script> <script type="text/javascript" src="http://www.gimoo.net/t/1904/js/animateBackground-plugin.js"></script>
然后我們?cè)陧?yè)面適當(dāng)?shù)奈恢弥屑尤胍故緮?shù)字滾動(dòng)效果的html元素。
<div id="total"> 下載量:<span class="t_num"></span>次 </div>
jQuery
首先來(lái)寫(xiě)一個(gè)函數(shù)show_num(),該函數(shù)用來(lái)實(shí)現(xiàn)動(dòng)態(tài)滾動(dòng)數(shù)字。我們將統(tǒng)計(jì)數(shù)字n進(jìn)行拆分成一個(gè)個(gè)單獨(dú)的數(shù)字,這些數(shù)字用<i></i>包圍,通過(guò)調(diào)用插件backgroundPosition將圖片定位到對(duì)應(yīng)的每個(gè)數(shù)字上。
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({ //滾動(dòng)動(dòng)畫(huà) backgroundPosition :'(0 '+String(y)+'px)' }, 'slow','swing',function(){} ); } }
接著,我們通過(guò)ajax獲取后臺(tái)最新的下載次數(shù)。下面的代碼是一個(gè)常見(jiàn)的jQuery的ajax請(qǐng)求,通過(guò)post請(qǐng)求到data.php,data.php或獲取最新的下載次數(shù),處理成功后則得到下載次數(shù):data.count,然后調(diào)用show_num()實(shí)現(xiàn)數(shù)字滾動(dòng)。
function getdata(){ $.ajax({ url: 'data.php', type: 'POST', dataType: "json", cache: false, timeout: 10000, error: function(){}, success: function(data){ show_num(data.count); } }); }
最后,我們?cè)陧?yè)面加載完后要初始化數(shù)據(jù),然后每隔3秒鐘執(zhí)行一次ajax請(qǐng)求,更新下載次數(shù):
$(function(){ getdata(); setInterval('getdata()', 3000);//每隔3秒執(zhí)行一次 });
類似可以在統(tǒng)計(jì)網(wǎng)站訪問(wèn)量、統(tǒng)計(jì)影片播放次數(shù)、倒計(jì)時(shí)等方面得到應(yīng)用,至于后臺(tái)data.php如何處理數(shù)據(jù)不在本文敘述范圍內(nèi),有興趣的同學(xué)可以自己寫(xiě)一個(gè)諸如計(jì)數(shù)器之類的后臺(tái)程序來(lái)返回data.count。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。