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;
// 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 在 <head>
部分中加载,在打开和关闭 <script>
标记内。该网站再次上线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下拉菜单在悬停时不下拉[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在悬停而不是单击时制作 Twitter Bootstrap 的“拆分按钮下拉菜单”下拉菜单?