javascript - 鼠标移出时淡出,除非在设定时间内鼠标悬停

标签 javascript jquery html

我正在寻找以下问题的解决方案: 鼠标悬停时,div 会淡入。鼠标移开时,它会再次淡出。简单而且可行,但我想设置一个条件,即仅当鼠标悬停在设定时间内(例如 2 秒)内不再发生时才会发生淡出。简单的delay()不起作用,因为无论如何它都会发生...是否有一种方法可以设置某种计时器来取消函数在这段时间内触发的函数运行?

最佳答案

$('#foo').hover(function() {
    var $bar = $('#bar');
    clearTimeout($bar.data('fadeOutTimer'));
    $bar.fadeIn();
}, function() {
    var $bar = $('#bar');
    $bar.data('fadeOutTimer', setTimeout(function() {
        $bar.fadeOut();
    }, 3000));
});

演示:http://jsfiddle.net/5oLcfzj1/

关于javascript - 鼠标移出时淡出,除非在设定时间内鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28486499/

相关文章:

javascript - Meteor todoapp 中 todo 的作者

jQuery 1.4.x 和 @ 符号

html - 我很难将侧边栏放在我的谷歌地图旁边 - gmaps4rails

javascript - 根据下拉选择显示/隐藏 div - jquery

javascript - WebView 变白/空白

javascript - 循环内的 AJAX 请求 : aborting certain ajax call based on the response of the previous call?

javascript - jQuery 添加/删除类不会触发 'right' 属性的 CSS 转换

javascript - 如何检查是否使用 jQuery 检查了 div 中的所有复选框?

javascript - 根据点击事件滑动div

javascript - 如何在 "AktionLink"的 "onClick"事件中调用 "div"?