我要疯了。 我想在鼠标移动中显示一个元素,并在最后一次移动鼠标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