2017-02-13 5 views
1
start.on('click', function(){ 
    setInterval(time, 1000); 

    object.animate({ marginTop: '500px' }, 3000, function() { 
    normaal.fadeIn(700); 
    }); 
}); 


function time() { 
    change.textContent = Number(change.textContent) + 50; 
} 

Wie excatly kann ich diese setInterval stoppen (löschen). Ich möchte, dass es nach 3000 Millisekunden automatisch startet, sobald das gerade aufgerufen wurde.Wie kann dieser setInterval gelöscht werden?

Antwort

1

setInterval hält die Methode immer aufrufen. Was Sie wollen, ist stattdessen setTimeout verwenden, die die Methode einmal (und nur einmal) nach dem Warten auf den angegebenen Zeitraum aufrufen wird. Sie können clearTimeout verwenden, wenn Sie verhindern möchten, dass ein setTimeout-Aufruf ausgeführt wird.

setTimeout(time, 3000); 
+0

Vielen Dank! Wissen Sie auch, wie Sie die Animation in Sekundenschnelle schneller machen können? Genau wie die Schwerkraft möchte ich, dass sich die Animation mit der Zeit beschleunigt. – user7548524

+0

Sie sollten das als eine separate Frage fragen, seitdem erhalten Sie mehr/bessere Antworten. Ich kann nicht sagen, dass ich zu viel über Animation weiß, sorry. –

-1

var interval; 
 

 
start.on('click', function() { 
 
    interval = setInterval(time, 1000); 
 

 
    object.animate({ marginTop:'500px' }, 3000, function() { 
 
    normaal.fadeIn(700); 
 
    }); 
 
}); 
 

 

 
function time() { 
 
    change.textContent = Number(change.textContent) + 50; 
 
} 
 

 
function stop() { 
 
    clearInterval(interval); 
 
}

2

Sie können den clearInterval Methode machen.

var intervalID = setInterval(time, 1000);

Der zurückgegebene Wert ist ein numerischer setInterval, nicht-Null-Wert, der den Zeitgeber durch den Aufruf von setInterval() erstellt identifiziert; Dieser Wert kann zu WindowOrWorkerGlobalScope.clearInterval geben werden() der Timeout abzubrechen.

und dann an clearInterval, passieren die intervalID wie clearInterval(intervalID);

Auch setInterval den Rückruf ruft wiederholt, wenn man nur einmal einen Codeblock ausführen müssen, dann SetTimeout stattdessen verwenden.

Verwandte Themen