2016-08-06 17 views
0

Ich bin ziemlich neu in der Programmierung und wollte ein Clicker-Spiel mit JS und HTML machen. Jetzt möchte ich Erfolge hinzufügen. Sie sollten auftauchen und für ein paar (5 vielleicht?) Sekunden angezeigt werden und dann verschwinden.Wie kann ich eine JS-Funktion warten lassen, um auszuführen?

Ich habe eine Lösung bisher, aber die Funktion wird alle 10sec ausgeführt. und wenn du den Erfolg nach dem 6. bekommen solltest. Zweitens wird das Pop-up für etwa 2 - 4 Sekunden angezeigt, bevor es verschwindet.

Kurz gesagt, wenn die Leistung erreicht ist, sollte die Leistung (div) Pop-up, bleiben Sie dort für 5 Sekunden, dann verblassen.

Hier ist meine JS:

//Check if achievement #1 is completed/true: 
if(Ach1up == true){ 
    Modal1stAch.style.display = "block"; 
    Ach1up = null; 
} 

//Fade-out function 
setTimeout(function() { 
    Modal1stAch.style.opacity = "0.0"; 
    Modal1stAch.style.WebkitTransition = "2s";  
    Modal1stAch.style.transition = "2s"; 
}, 10000); 
+0

Könnten Sie bitte angeben, wann die Verzögerung beginnen soll? Wenn Sie beim Laden der Seite JavaScript-Verzögerung wünschen, können Sie versuchen, das Skript am Ende der Seite innerhalb einer Funktion hinzuzufügen und diese Funktion dann mit '' –

Antwort

0

Wenn ich richtig verstanden, was Sie brauchen, ist Ihr fadeout Code in eine Funktion zu packen und es 5s rufen nach dem ach1up wahr ist.

//Check if achievement #1 is completed/true: 
if(Ach1up == true){ 
    Modal1stAch.style.display = "block"; 
    Ach1up = null; 
    setTimeout(function() { //wait 5 seconds to fade the popup 
     popupFadeOut(); 
    }, 5000); 
} 

//Fade-out function 
// you write it, and wait to be called. 
function popupFadeOut() { 
    Modal1stAch.style.opacity = "0.0"; 
    Modal1stAch.style.WebkitTransition = "2s";  
    Modal1stAch.style.transition = "2s"; 
} 
+0

aufzurufen Wow, danke. Haha, das war's! :) Genau das, was ich wollte – Fred

Verwandte Themen