2016-08-03 10 views
0

Ich bin ein Neuling mit JS/Jquery und ich versuche ein Bild an einem zufälligen Ort in einem festgelegten Intervall (wie ein Schlag-) erscheinen zu lassen A-Maulwurf-Spiel), das derzeit alle 3 Sekunden wiederholt wird, aber ich möchte das Bild zu einer zufälligen Zeit zwischen 1 und 2 Sekunden erscheinen lassen. HierJQuery/JavaScript: Verwenden eines Zufallszahlengenerators als setInterval() Timer

ist der Code, den ich Fragen habe mit:

var roleTime = Math.floor(Math.random()*(2000-1000)); 
     setInterval(function(){ 
      randRole(); 

     }, 3000); 

Ich versuche, die roleTime Variable anstelle der 3000ms zu verwenden, aber es verursacht nur das Bild schnell die div füllen, die es in enthalten ist.

+3

'1000-2000' ist eine negative Zahl, was bedeutet, dass Sie' -1000' als Intervallzeit übergeben – nem035

Antwort

1

setInterval kann nur einen einzelnen Intervallwert verwenden (ungefähr das gleiche Intervall zwischen Rückrufen). Aber man kann eine wiederholte setTimeout statt:

function cycle() { 
    setTimeout(function() { 
     randRole(); 
     cycle(); 
    }, 1000 + Math.floor(Math.random() * 2000)); 
} 
cycle(); 

Beachten Sie auch, wie dass eine Zufallszahl zwischen 1000 berechnet (einschließlich) und 3000 (exklusiv): Es dauert 1000 dann eine Zufallszahl zwischen 0 (einschließlich) ergänzt und 2000 (exklusiv).