我要瘋了。 我想在鼠標移動中顯示一個元素,並在最後一次移動鼠標10秒後隱藏它。無盡而鼠標移動後循環
我寫了這個:
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>
它爲什麼會死循環結束了? 爲什麼不退出條件?爲什麼if不會得到'true'參數? 注意事項:不要這樣運行......它會殺死你的標籤。
是什麼在這裏你的目標?當鼠標在窗口內移動時,你只是試圖顯示div 10秒鐘? – Turk
你不需要'while'。 'setTimeout'爲你完成所有的時間。你只需要告訴它在'n'毫秒後要調用什麼。 – zero298
,因爲setTimeout是異步的。 – epascarello