我不是非常精通这一点,但我有一个导航项目,在悬停时,一个带有搜索表单的div滑下。目前,当您将鼠标移到div上,然后再移出时,div将保持打开状态,直到您单击close按钮。
我正在尝试这样做,这样当你用鼠标移出div幻灯片时,几秒钟后就会备份,除非用户仍然在div或nav链接上(即,他们正在填写搜索表单)。
这是我到目前为止所知道的:
$("#services_link").mouseover(function() {
$("#services_link").css('background-position','left -73px');
$("#vendors_dropdown").slideDown(function() {
setTimeout(HideMe, 4000);
});
});
function HideMe() {
$("#services_link").css('background-position','left 0');
$("#vendors_dropdown").slideUp();
}这使我的变量就像div在链接悬停时向下滑动,4秒后向上滑动一样(无论鼠标光标在哪里)。因此,如果鼠标光标位于链接或div上,我只需要div保持打开状态。
我已经看了三四个类似的问题(和答案),但没有一个真正做到了这一点。setTimeout (和clearTimeout)对我来说有点陌生,所以请原谅这个菜鸟问题。:)
发布于 2013-03-19 09:44:19
绑定mouseenter和mouseleave。您需要在鼠标离开时设置超时,但如果再次出现鼠标输入,则将其重置。
尝试只查看选择的答案here,以了解如何执行我所说的操作。
如下所示:
var timeout;
$("#services_link, #vendors_dropdown").mouseenter(function() {
window.clearTimeout(timeout);
$("#services_link").css('background-position','left -73px');
$("#vendors_dropdown").slideDown();
}).mouseleave(function(){
timeout = window.setTimeout(HideMe, 4000);
});
function HideMe() {
$("#services_link").css('background-position','left 0');
$("#vendors_dropdown").slideUp();
}https://stackoverflow.com/questions/15490078
复制相似问题