Ich werde hier verrückt. Ich möchte ein Element beim Bewegen der Maus anzeigen und es 10 Sekunden nach dem letzten Mausklick ausblenden. IchEndlosschleife nach Mausbewegung
schrieb dies:
document.addEventListener("DOMContentLoaded", function(event) {
var time = 0;
document.addEventListener("mousemove", function(event) {
console.log('$');
document.getElementsByClassName("mybar")[0].style.visibility = 'visible';
time = 0;
while (time < 11) {
setTimeout(function() {
time++
}, 1000);
console.log(time, time == 10);
if (time == 10) {
document.getElementsByClassName("mybar")[0].style.visibility = 'hidden';
}
}
});
});
<div class='mybar'>
<h1> TESTING </h1>
</div>
Warum ist es in einer Endlosschleife enden? Warum verlässt es nicht unter Bedingung? Warum erhält der if niemals den 'wahren' Parameter? Hinweis: Führen Sie es nicht auf diese Weise ... es wird Ihren Tab töten.
Was hier ist Ihr Ziel? Versuchen Sie einfach, das div für 10 Sekunden zu zeigen, wenn sich die Maus innerhalb des Fensters bewegt? – Turk
Sie brauchen das 'while' nicht. 'setTimeout' erledigt das ganze Timing für Sie.Sie müssen nur sagen, was nach 'n' Millisekunden aufgerufen werden soll. – zero298
weil setTimeout asynchron ist. – epascarello