当鼠标一段时间没有移动时,用jQuery隐藏div元素?

Posted

技术标签:

【中文标题】当鼠标一段时间没有移动时,用jQuery隐藏div元素?【英文标题】:Hide div element with jQuery, when mouse isn't moving for a period of time? 【发布时间】:2011-05-17 09:13:30 【问题描述】:

我有一个广播视频网站,有一个菜单,当鼠标有一段时间没有移动(比如说 10 秒)时,它应该被隐藏。同样,它应该会随着鼠标移动而出现。使用 css 和 jQuery 执行此操作的最佳方法是什么? 先感谢您。

【问题讨论】:

当鼠标移到视频上时你会得到鼠标移动事件吗?或者您是否正在使用一个插件来阻止所有这些事件冒泡?如果你不能最好地使用任何插件(我假设是 Flash)正在显示视频来处理菜单。 【参考方案1】:

看看mousemove 事件。你可以试试这样:

var i = null;
$("#element").mousemove(function() 
    clearTimeout(i);
    $("#menu").show();
    i = setTimeout(function () 
        $("#menu").hide();
    , 10000);
).mouseleave(function() 
    clearTimeout(i);
    $("#menu").hide();  
);

演示:http://jsfiddle.net/AMn9v/6/

【讨论】:

太好了,这就是我要找的!我正在查看 mousemove 事件,但不知道如何在其中设置 Timeout。非常感谢! 为了更加美观,JQuery fadeOut(1000)fadeIn(100) 可以很好地代替 hide()show()。时间就是例子。

以上是关于当鼠标一段时间没有移动时,用jQuery隐藏div元素?的主要内容,如果未能解决你的问题,请参考以下文章

当滚动条与jQuery一起移动时如何隐藏Div?

使用jQuery防止元素“捕获”鼠标?

div随鼠标移动

jQuery 通过鼠标摇拽改变div的大小

jquery日历插件问题

已创建 Jquery 菜单但没有任何效果