当鼠标不在时,如何隐藏元素
How to hide element, when mouse is out
我想在一段时间后隐藏div,如果鼠标没有在它上面。这个脚本正在工作,但我想知道它如何才能更好地工作。
var i = null;
i = setTimeout(function () {
$("#info").hide("slow");
}, 7000);
$("#info").mousemove(function() {
clearTimeout(i);
}).mouseleave(function() {
i = setTimeout(function () {
$("#info").hide("slow");
}, 2000);
});
你的解决方案是对的。一件事是在清除超时之前检查i
是否不是null
。如果您想要更漂亮的代码,请将超时回调定义为单独的函数,如下所示:
var i = null;
i = setTimeout(hideInfo, 7000);
$("#info")
.mousemove(function() {
if(i){
clearTimeout(i);
}
})
.mouseleave(function() {
i = setTimeout(hideInfo, 2000);
});
function hideInfo(){
$("#info").hide("slow");
}
编辑:这不是问题的真正内容-忽略这个答案。
你可以不使用javascript,使用纯css:
yourDivClass {
opacity: 0;
-webkit-transition-delay: 2s; /* Safari */
transition-delay: 2s;
}
yourDivClass:hover {
opacity: 1;
transition: 0s ease all;
}
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 随时隐藏元素
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 隐藏元素直到加载完成(ng斗篷不是我需要的)
- 在具有类的元素中隐藏元素
- javascript()onclick隐藏元素-dos'我不在firefox工作
- JQueryHide()在按钮中使用元素时不会隐藏元素
- 使用Javascript取消隐藏元素
- 如果鼠标离开父对象,则隐藏元素
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 基于事件在循环中隐藏元素
- 渐进式增强-不使用CSS隐藏元素
- 隐藏元素后更新滚动条
- jQuery没有隐藏元素
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 如何使用javascript在区域外单击时隐藏元素
- 如何在加载网页时隐藏元素
- JS:隐藏元素上的事件侦听器
- HTML 显示/隐藏元素 JS 不起作用