【问题标题】:hiding a div when the mouse is a certain distance away from that div当鼠标距离该 div 一定距离时隐藏该 div
【发布时间】:2010-12-16 15:25:53
【问题描述】:

我在页面上有一个 div,它由导航栏中的项目切换。我想做的是当用户的鼠标距离 div 的外边界一定距离时隐藏该 div。

下面是一些示例代码:

<ul>
    <li>This is link A</li>
    <li>This is link C</li>
    <li id="trigger">This is link D</li>
</ul>

<div id="megaMenu">This is where the menu content goes</div>

因此,当用户将鼠标悬停在 li#trigger 上时,巨型菜单会向下滑动。我想做的是当用户的鼠标在 div 边界外 50px 时让#megaMenu 向上滑动。有什么建议么??

这是我使用的核心 jQuery:

$(document).ready(function () {

    $('li#locations a').hover(function () {
        $('#locationsSuperNav').slideDown();
    });

    $('.superNavClose').hover(function () {
        $('#locationsSuperNav').slideUp('fast').removeClass("open");
    });

});

第二段代码 (.superNavClose) 尝试在菜单周围放置一个热点,以便在用户鼠标点击它时将其关闭。大型菜单中有一堆链接,所以我需要在用户使用它时保持打开状态。我在想当鼠标距离一定距离时关闭 div 会很好。提前感谢您的任何建议!

【问题讨论】:

  • 为什么不在 megaMenu 周围使用填充。它很简单,可以满足您的需求。
  • 我们遇到的是用户离开 div 的速度。如果他们的鼠标快速离开,则 div 将保持打开状态。需要有一个完整的方法来关闭它。

标签: jquery


【解决方案1】:

您可以使用悬停函数中的 handlerOut 回调

$(document).ready(function(){

    $('li#locations a').hover(function(){   
        $('#locationsSuperNav').slideDown();
        }, function(){
            $('#locationsSuperNav').slideUp('fast').removeClass("open");
        }); 

});

【讨论】:

    猜你喜欢
    • 2014-01-10
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2019-04-27
    • 1970-01-01
    相关资源
    最近更新 更多