【问题标题】:Keep background active state as hover?将后台活动状态保持为悬停?
【发布时间】:2010-12-14 00:17:50
【问题描述】:

我有一个无序列表,在一个 LI 里面,下面是下拉菜单。

Dropdown 使用 JQ/JS 作为隐藏/显示状态。当鼠标悬停在下拉列表项上时,如何让背景颜色/图像保持在该项目(主 LI)上,就像在活动状态下一样,直到光标移出下拉区域。

这是否需要创建另一个 DIV 块来包含所有元素? (Menu,Submenu,JS) 如果是这样的话,再写几行JS?

或者有没有更简单的方法来实现这一点与 css.. 因为我想不出办法。 希望我的问题很清楚,请忽略所有不必要的 HTML 和 CSS 代码,

谢谢。

JS

$(function () {
$('.dropdown, .dropdown2, .dropdown3').each(function () {
$(this).parent().eq(0).hover(function () {
$('.dropdown, .dropdown2, .dropdown3:eq(0)', this).show();
}, function () {
$('.dropdown, .dropdown2, .dropdown3:eq(0)', this).hide();
});
});
});

HTML

<ul id="nav-container">
    <li><a href="#"><span>Home</span></a>
    <ul class="dropdown">
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    </ul>
    </li>

    <li><a href="#"><span>Services</span></a>
    <ul class="dropdown2">
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    </ul>
    </li>

    <li><a href="#"><span>Contact</span></a>
    <ul class="dropdown3">
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    </ul>
    </li>
</ul><!--nav-container-->

菜单 CSS

#nav-container  {
 display: block;
 width: 900px;
 float: right;
 position: relative;
 left: 120px;
}
#nav-container li a span {
 display: inline;
 height: 36px;
 padding-top: 12px;
 padding-left: 13px;
 padding-right: 14px;
 float: left;
}
#nav-container .active-link span   {
 background-image: url(../img/navlist_bg2.gif);
 background-repeat: repeat-x;
 display: block;
 color: #000;

}

#nav-container li a:hover span {
 display: block;
 background-image: url(../img/navlist_bg2.gif);
 background-repeat: repeat-x;
}
#nav-container .active {
 background-image: url(../img/navlist_bg2.gif);
 background-repeat: repeat-x;
}

#nav-container li  {
 list-style-type: none;
 display: inline;
}

SUB MENU CSS(dropdown2、dropdown3 与定位相同)

ul.dropdown
{
 margin: 0;
 padding: 0;
 display: block;
 position: absolute;
 z-index: 999;
 top: 100%;
 width: 300px;
 display: none;
 left: 80px;
 font-size: 11px;
 height: 90px;
}

ul.dropdown ul.dropdown
{
 top: 0;
 left: 95%;
}


ul.dropdown li
{
 margin: 0;
 padding: 0;
 float: none;
 position: relative;
 list-style: none;
 display: block;
 color: #3C3C3C;
}

ul.dropdown li a
{
 display: block;
 color: #3C3C3C;
 font-size: 11px;
}
ul.dropdown li a span {
 font-size: 11px;
 color: #3C3C3C;
}

【问题讨论】:

    标签: javascript html css drop-down-menu


    【解决方案1】:

    JS:

    $(function () {
    $('.menu1').hover(function () {
    $('.link').addClass('active');
    $('.dropdown1').show;
    }, function () {
    $('.dropdown1').hide;
    $('.link').removeClass('active');
    });
    });
    });
    

    HTML:

    <li class="menu1"><a class="link" href="#"><span>Home</span></a>
    <ul class="dropdown1">
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    <li><a href="#"><span class="subtxt">Menu item 2</span></a></li>
    </ul>
    </li>
    

    对所有基本菜单项(hover1、2、3 等)重复此操作

    【讨论】:

    • 很抱歉作为初学者离开了,但我如何将它与我的其他脚本一起使用?尝试更改 JS 但它坏了。 {.main_li} 只是包含 div&li - #nav-container li -- 谢谢
    • 更新了代码。现在 JS 执行活动语句,并且下拉列表。
    • 感谢 Wintercounter,我已经尝试按照您上面的说明添加它。但是下拉菜单似乎已经损坏,当我将鼠标悬停在链接上时,活动链接背景也没有出现。让我知道我是否应该发布任何可以提供帮助的内容。也许我们可以使用 jsfiddle 来共享和测试代码?
    猜你喜欢
    • 2014-02-08
    • 2021-11-15
    • 2013-01-10
    • 2017-03-15
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多