【问题标题】:Bootstrap Dropdown Menu Not Dropping Down On Hover [duplicate]Bootstrap下拉菜单在悬停时不下拉[重复]
【发布时间】: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 可能。

标签: javascript jquery html css twitter-bootstrap


【解决方案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);
         });
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-07
        • 2019-10-30
        • 2019-12-31
        • 2021-01-28
        • 2020-07-15
        • 2018-12-27
        • 1970-01-01
        • 2020-07-15
        相关资源
        最近更新 更多