2016-03-08 69 views
0

我正在創建一個腳本,它將刷新顯示在我網站頂部的「查看者」數量。Javascript count up on load load

的Javascript:

<script type="text/javascript"> 
window.onload = function(){ 
var auto_refresh = setInterval(
function() 
{ 
$('#viewers').load('viewers.php'); 
}, 5000); 
} 
</script> 

HTML:

<span id="viewers">0</span> 

viewers.php輸出:

100 

我想補充一個 「上/下數」 的效果,所以例如,如果viewers.php輸出200,它將在5000毫秒後計數,如果此計數降至50,則100將計數降至50.

感謝您的幫助!

+0

您希望它從當前查看者數#到viewers.php給定的數字在5000 ms的範圍內? – IrkenInvader

+0

什麼是在viewers.php中? –

+0

正確!計數時間爲4秒。 500ms只是刷新狀態之間花費的時間。 –

回答

0

這是一個解決方案,可以在給定的延遲時間內對新的觀衆人數進行計數。它似乎運行速度有點慢,可能是由於我的代碼在setInterval內延遲了。

只要您想更新計數,只需撥打setViewers即可。

<script type="text/javascript"> 
window.onload = function(){ 


var delay = 4000; 
var viewers = $("#viewers"); 
var auto_refresh = setInterval(
function() 
{ 
    var curViewers = Number(viewers.html()) 
    $('#viewers').load('viewers.php', function(){ 
    var newViewers = Number(viewers.html()); 
    setViewers(curViewers, newViewers); 
    }); 

}, 5000); 



function setViewers(currentNum, newNum){ 
    if(currentNum == newNum) return; 
    var updateSpeed = delay/Math.abs(currentNum - newNum); 
    var countDir = currentNum > newNum ? -1 : 1; 
    var timer = setInterval(function(){  
    currentNum += countDir; 
    viewers.text(currentNum); 
    if(currentNum == newNum) clearInterval(timer); 
    }, updateSpeed); 
} 
} 
</script> 
+0

感謝您的代碼,我在將它與load('viewers.php')連接起來時遇到了一些麻煩。我怎麼能從div中獲取'currentNum'並從加載函數中獲取'newNum',然後調用它? –

+0

我老實說不太熟悉php或jquery的'load',但我編輯了一個可能的方式來調用我的代碼。還沒有測試過,所以它可能不是很正確。 – IrkenInvader

+0

非常感謝,它工作完美! –