2017-05-03 71 views
-1

我正在嘗試編寫一個小腳本,它會每隔25到60秒在我的頁面上隨機放置一個項目。如何在JQuery中實現真正的隨機性?

下面的代碼會將d​​iv隨機添加到我的頁面,但是之後的每一次出現都是在同一時間執行的。例如,如果腳本從44秒開始,它將每44秒添加一個新的div,而不是隨機的。

我該如何達到真正的隨機性?

var contentDiv = ['firstDiv','secondDiv']; 
function popDiv(min, max) { 
    var timedDiv = contentDiv[Math.floor(Math.random() * (max - min + 1) + min)]; 
    jQuery("#" + timedDiv).fadeIn("slow").delay(4000).fadeOut("slow"); 
} 

popDiv(1, contentDiv.length - 1) 

setInterval(function(){ 
    popDiv(1, contentDiv.length - 1); 
}, 
Math.round(Math.random() * (60000 - 15000)) + 15000); 
+0

它被設置後不能更改間隔延遲,所以...也許一個間隔是不是你想要的。 –

+3

使用'setTimeout'而不是'setInterval',並在每次popDiv被調用時調用它。 –

回答

2

這裏的一般原則:

let maxTime = 60000, 
    minTime = 25000, 
    doSomething = function() { 
     // do something... 
     setTimeout(function(){ 
     doSomething(); 
     }, Math.random() * (maxTime - minTime) + minTime) 
    }; 
doSomething(); 
+1

謝謝。有點重新安排,它按預期工作。 – FGatlin

+0

@FGatlin,很高興我能幫上忙。快樂的編碼! –