简体   繁体   English

导航栏:显示子菜单后保持链接悬停

[英]navbar: keep link hover after show submenu

i have a navbar with submenus, the submenu have a background image .png, but, only 3 links have this submenu on my navbar, so, my problem is, when the menu link is hover state, and the submenu are onmouseover, the nav link lost the hover state. 我有一个带有子菜单的导航栏,该子菜单有一个背景图像.png,但是,我的导航栏上只有3个链接具有该子菜单,所以,我的问题是,当菜单链接处于悬停状态时,并且该子菜单是onmouseover时,导航链接丢失了悬停状态。 how to do a navbar with custom background on submenu and keep this link hover, i tried it but, i have sucess if i do it only with div, but with a unordered list is hard. 如何在子菜单上使用具有自定义背景的导航栏并使该链接悬停,我尝试了一下,但是,如果我仅使用div进行操作,但使用无序列表却很难,我就成功了。

obs: below my links, when hovered have a arrow down obs:在我的链接下方,悬停时有向下箭头

<ul class="menu">
    <li><a href="#" id="empresa" class="">empresa</a>
        <div class="sub-empresa">
            <ul class="menu-empresa">
                <li><a href="historia.html">história</a></li>
                <li class="separador"></li>
                <li><a href="politica-privacidade.html">política de privacidade</a></li>
                <li class="separador"></li>
                <li><a href="#">certificações e prêmios</a></li>
            </ul>
        </div>
    </li>
    <li class="pipe"></li>
    <li><a href="produtos.html">produtos</a></li>
    <li class="pipe"></li>
    <li><a href="representantes.html">representantes</a></li>
    <li class="pipe"></li>
    <li><a href="distribuidores.html">distribuidores</a></li>
    <li class="pipe"></li>
    <li><a href="#" id="infotec">informativos tecnicos</a>
        <div class="sub-informativo-tec">
            <ul class="menu-infotec">
                <li><a href="#">generalidades</a></li>
                <li class="separador"></li>
                <li><a href="#">recomendações para instalações</a></li>
                <li class="separador"></li>
                <li><a href="#">conceitos básicos sobre condutores</a></li>
                <li class="separador"></li>
                <li><a href="#">simbologia</a></li>
                <li class="separador"></li>
                <li><a href="#">critério de dimensionamento de circuitos</a></li>
                <li class="separador"></li>
                <li><a href="#">queda de tensão</a></li>
                <li class="separador"></li>
                <li><a href="#">dimencionamento de eletrodutos</a></li>
                <li class="separador"></li>
                <li><a href="#">correntes máximas de curto-circuito</a></li>
            </ul>
        </div>
    </li>
    <li class="pipe"></li>
    <li><a href="#">eventos</a></li>
    <li class="pipe"></li>
    <li><a href="#">videos</a></li>
    <li class="pipe"></li>
    <li><a href="#" id="contato">fale conosco</a>
        <div class="sub-fale-conosco">
            <ul class="menu-faleconosco">
                <li><a href="fale-conosco.html">fale conosco</a></li>
                <li class="separador"></li>
                <li><a href="trabalhe-conosco.html">trabalhe conosco</a></li>
                <li class="separador"></li>
                <li><a href="#">seja nosso representante</a></li>
                <li class="separador"></li>
                <li><a href="#">seja nosso distribuidor</a></li>
            </ul>
        </div>
    </li>
</ul><!-- /.menu -->


//menu do topo
$("#empresa").mouseover(function() {
    $(".sub-empresa").slideDown(199);
});

$(".sub-empresa").mouseleave(function() {
    $(".sub-empresa").fadeOut("slow", function() {
        $(".sub-empresa").css("display","none");
    });
});

$("#infotec").mouseover(function() {
        $(".sub-informativo-tec").slideDown(199);
});
$(".sub-informativo-tec").mouseleave(function() {
        $(".sub-informativo-tec").fadeOut("slow", function() {
        $(".sub-informativo-tec").css("display", "none");
    });
});

$("#contato").mouseover(function() {
    $(".sub-fale-conosco").slideDown(199);
});
$(".sub-fale-conosco").mouseleave(function() {
        $(".sub-fale-conosco").fadeOut("slow", function() {
        $(".sub-fale-conosco").css("display", "none");
    });
});

$("body").click(function(){
    $(".sub-empresa, .sub-informativo-tec, .sub-fale-conosco").fadeOut("slow");
});

Have a look at this tutorial: http://line25.com/tutorials/how-to-create-a-pure-css-dropdown-menu 看一下本教程: http : //line25.com/tutorials/how-to-create-a-pure-css-dropdown-menu

It contains a step by step explanation on how to create a nice dropdown-menu - based on unordered lists - with pure css. 它包含有关如何创建纯CSS的基于无序列表的下拉菜单的分步说明。 You should be able to solve your problem with it. 您应该能够解决它的问题。

Looks like the div wraping the submenu isn't necessary. 看起来div不需要包裹子菜单。

Something like this may be more simple: 这样的事情可能更简单:

$('.menu ul').each(function () {
    $(this).parent().eq(0).hover(function () {
        $(this).addClass('on');//for styling
        $('ul:eq(0)', this).slideDown(200);
    }, function () {
        $(this).removeClass('on');//for styling
        $('ul:eq(0)', this).stop(true, true).slideUp(400);
    });
});

not sure what your current css was, so I made some up just to see how it would work. 不知道您当前使用的CSS是什么,所以我做了一些修改只是为了看看它如何工作。

here's the fiddle: http://jsfiddle.net/filever10/8xu5m/ 这是小提琴: http : //jsfiddle.net/filever10/8xu5m/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM