Bootstrap下拉菜单在悬停时不下拉[重复]

Posted

技术标签:

【中文标题】Bootstrap下拉菜单在悬停时不下拉[重复]【英文标题】:Bootstrap Dropdown Menu Not Dropping Down On Hover [duplicate] 【发布时间】:2017-10-24 21:33:31 【问题描述】:

我正在尝试关注this example,以便在悬停时在引导程序中创建下拉菜单。现在,当您将鼠标悬停在下拉菜单上时,什么也没有发生 - (try hovering over services)。

对我来说没有意义的是它实际上在 JSFiddle 中有效。

html

<nav class="navbar navbar-default">
    <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <div>
            <a class="navbar-brand" href="http://nowordpress.gatewaywebdesign.com/">
            <img src="assets/images/gatewaylogo.png">
            </a>
        </div>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-right">
            <li><a href="http://nowordpress.gatewaywebdesign.com/index.html">Home <span
                    class="sr-only">(current)</span></a></li>
            <li><a href="http://nowordpress.gatewaywebdesign.com/about.html">About</a></li>
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                   aria-expanded="false">
                    Services
                    <span class="caret"></span>
                </a>
                <ul class="dropdown-menu">
                    <li><a href="http://nowordpress.gatewaywebdesign.com/website-design.html">Website Design</a></li>
                    <li><a href="http://nowordpress.gatewaywebdesign.com/graphic-design.html">Graphic Design</a></li>
                    <li><a href="http://nowordpress.gatewaywebdesign.com/promotional-products.html">Promotional Products</a></li>
                    <li><a href="http://nowordpress.gatewaywebdesign.com/search-engine-marketing.html">Search Engine Marketing</a></li>
                    <li><a href="http://nowordpress.gatewaywebdesign.com/wordpress-conversion.html">WordPress Conversion</a></li>
                </ul>
            </li>
            <li><a href="/store.html">Store</a></li>
            <li><a href="#">Blog</a></li>
            <li><a href="#">My Account</a></li>
        </ul>

    </div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->

CSS:

#bottom-nav-menu 
height: 100px;


#gatewaylogo 
height: 85px;
padding-left: 6px;
padding-top: 10px;


.navbar-li, .navbar-li a 
text-decoration: none;
font-family: 'oswald_regularregular';
color: #1B3764;
list-style-type: none;
font-size: 22px;


.navbar-li a:hover 
color: #76abdc;
text-decoration: none;


#my-account 
position: relative;


.navbar-brand 
height: inherit;


.navbar-brand img 
height: 82px;
padding: 10px 0;


.navbar-default 
border: none;
background: #ffffff;
line-height: 100px;
margin-bottom: 0;


.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus 
background: none;
background-color: transparent;
color: #1971b9;
transition: ease-in-out 0.3s;


.navbar-default .navbar-nav > li > a 
font-family: 'oswald_regularregular';
color: #1B3764;
text-transform: uppercase;
font-size: 18px;
line-height: 100px;


.navbar-default .navbar-nav > li:last-child > a 
margin-right: 0;

javascript

// dropdown-menu
    $('ul.nav li.dropdown').hover(function() 
    $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
        , function() 
    $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
    );

JavaScript 在 &lt;head&gt; 部分中加载,在打开和关闭 &lt;script&gt; 标记内。该网站再次上线here。如果您有任何建议,请告诉我 - 谢谢!

【问题讨论】:

对我来说很好。 那么,看看here。 @Dwhitz 是的,行得通。不知道为什么我写这个问题时这篇文章没有出现。谢谢! 你可以完全不用 JavaScript 来解决这个问题,因为 CSS 已经有了 :hover 元素,你可以让关键帧淡入和淡出一个元素。也看看这个链接:w3schools.com/howto/howto_css_dropdown.asp @Sean 别担心。下次您可以使用 google 关键字搜索更多/更好的 advanced search 可能。 【参考方案1】:

尝试使用不同的 bootstrap 版本或检查是否正确链接了 bootstrap js 和 css。

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">

<!-- Optional theme -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">

<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js'></script> 

我尝试了以下 css 和 js 版本,对我来说效果很好。

工作示例

https://jsfiddle.net/sarathhari/2xqop6wd/

【讨论】:

【参考方案2】:

请参阅this article,它描述了如何使用 CSS 来实现。

CSS:

.dropdown-menu .sub-menu 
left: 100%;
position: absolute;
top: 0;
visibility: hidden;
margin-top: -1px;


.dropdown-menu li:hover .sub-menu 
visibility: visible;


.dropdown:hover .dropdown-menu 
display: block;


.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu, .navbar .dropdown-menu 

margin-top: 0;


.navbar .sub-menu:before 
border-bottom: 7px solid transparent;
border-left: none;
border-right: 7px solid rgba(0, 0, 0, 0.2);
border-top: 7px solid transparent;
left: -7px;
top: 10px;

.navbar .sub-menu:after 
border-top: 6px solid transparent;
border-left: none;
border-right: 6px solid #fff;
border-bottom: 6px solid transparent;
left: 10px;
top: 11px;
left: -6px;

【讨论】:

【参考方案3】:

请将此函数添加到 $(document).ready() 函数中。

错误:

$('ul.nav li.dropdown').hover(function() 
        $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
            , function() 
        $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
);

对:

$(document).ready(function()
   $('ul.nav li.dropdown').hover(function() 
        $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
            , function() 
        $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
   );
)

【讨论】:

以上是关于Bootstrap下拉菜单在悬停时不下拉[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在悬停时制作 Bootstrap 的下拉菜单?

如何在悬停而不是单击时制作 Twitter Bootstrap 的“拆分按钮下拉菜单”下拉菜单?

Bootstrap 3 下拉菜单:悬停和点击

在悬停时制作 Twitter Bootstrap 菜单下拉菜单,而不是轻松点击(解决方案)

Bootstrap 4.1中悬停时的下拉菜单

悬停在下拉菜单上时保持主导航项悬停 CSS