【问题标题】:Jquery fading Dropdown MenuJquery 褪色下拉菜单
【发布时间】:2011-09-05 23:23:42
【问题描述】:

我正在尝试制作一个菜单,当主菜单的按钮(具有子菜单的按钮)悬停时,该菜单会在下拉子菜单中消失。

问题是我有 mouseleave 使子菜单的 div 淡出。如果用户将鼠标悬停在带有子菜单的主按钮上并且没有进入子菜单的 div,则子菜单的 div 将停留在屏幕上。

<style type="text/css">
    .dropmenu{
        padding:10px 5px 5px 5px;margin-top:14px;display:none;background:#000000;position:absolute;font:normal 14px arial;color:#ffffff;z-index:3;
    }
</style>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function() {
        $('#popm').mouseover(function() {
            $('#x3').fadeIn("fast", "linear");
        });
        $('#x3').mouseleave(function() {
            $('#x3').fadeOut("fast", "linear");
        });
    });
</script>

<a class="wblinks" id="popm" href="popular.asp">Popular&#x25BC;</a>
<div id="x3" class="dropmenu" style="margin-left:124px;">
    <a class="more" href="popular.asp?t=td">Popular Today</a><br />
    <a class="more" href="popular.asp?t=wk">Popular Week</a><br />
    <a class="more" href="popular.asp?t=mn">Popular Month</a><br />
    <a class="more" href="popular.asp?t=6mn">Popular 6 Months</a><br />
    <a class="more" href="popular.asp?t=yr">Popular 1 Year</a><br />
    <a class="more" href="popular.asp">All Time</a><br />
</div>

如何使 div 在不悬停时自行消失?

【问题讨论】:

    标签: jquery css html


    【解决方案1】:

    您可以在鼠标移出#popm 时设置计时器。如果用户将鼠标悬停在下拉菜单上,则清除计时器。 http://jsfiddle.net/jUuVz/

    【讨论】:

    • +1 是个好主意,不需要额外的 html 标记。我不明白为什么这个答案被某人否决了。投反对票的人真的应该对原因发表评论。
    • 谢谢。效果很好。好东西。
    【解决方案2】:

    悬停在 a.wblinks 上是导致子菜单出现的原因,对吗?在这种情况下,您只需将所有内容(a.weblinks 和子菜单,div.dropmenu)包装在父 div 中,并将 mouseleave 事件绑定到该父 div。

    这与我回答here的问题类似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2019-08-29
      • 2016-01-06
      • 2011-11-16
      相关资源
      最近更新 更多