引导区悬停水平子导航
Bootstrap Hover Horizontal Subnav
我正在使用Bootstrap创建一个带有水平子菜单的下拉选项的菜单,我希望在悬停而不是单击时显示子菜单,但我在这方面遇到了困难。我为其创建网站的人要求我不要使用选项卡或药丸,并保持这种外观和当前功能。
我试着看了其他关于如何在悬停时使用下拉菜单的指南,但它们都是垂直的sub-v,我也试着让它们在水平的sub/v中使用,但我仍然做不到。
这不那么重要,但我该如何减少下拉菜单的可点击区域,以便您必须点击单词,但仍保持菜单的间距。还有没有一种方法可以修复动画,这样当我直接从下拉菜单1切换到下拉菜单2时,或者反之亦然,原始菜单不会被按下然后消失?如果最坏的情况出现,我会禁用动画,但我想我会问是否有解决方案。
以下是我的代码的Bootply链接:http://www.bootply.com/zP99qlIYPP
提前感谢您!
这应该可以。
$('#topmenu').parent().css({'position': 'relative'});
$('#topmenu .dropdown').hover(
function () {
hoverMe($(this));
},
function () {
hoverMeNot($(this));
}
);
function hoverMe(el) {
var target = el.find('a').eq(0).attr('data-target');
el.append($(target).addClass('out'));
}
function hoverMeNot(el) {
var target = el.find('a').eq(0).attr('data-target');
el.css({'pointer-events': 'none'});
if ($(target).parent().find(target + ":hover").length > 0) {
$(target).bind('mouseleave', function (e) {
hoverMeNot(el);
});
}
else {
$(target).appendTo($('#submenu')).removeClass('out');
el.css({'pointer-events': 'auto'});
}
}
.nav > li > a:hover, .nav > li > a:focus {
background-color: transparent;
color: #969590;
}
.navbar {
margin-bottom: 0;
border-radius: 0;
min-height: 32px !important
}
.navbar-xs {
margin-bottom: 0;
}
ul {
margin: 0;
}
.nav > li.dropdown:hover {
position: static;
overflow: visible;
}
.dropdown .nav {
position: absolute;
left: 0;
right: 0;
width: 100%;
top: calc(100% - 1px);
z-index: 2;
}
@media (min-width: 768px) {
.collapse.out {
display: block;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<nav class="navbar-xs" role="navigation" id="topmenu">
<ul class="nav nav-justified">
<li class="active"><a href="#">Home</a></li>
<li class="dropdown">
<a href="#" data-toggle="collapse" data-target="#test1">Dropdown 1</a>
</li>
<li class="dropdown">
<a href="#" data-toggle="collapse" data-target="#test2">Dropdown 2</a>
</li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</div>
<div>
<nav class="navbar" role="navigation" id="submenu">
<ul class="nav nav-justified collapse" id="test1">
<li><a href="#" id="">Foo</a></li>
<li><a href="#" id="">Bar</a></li>
<li><a href="#" id="">Apples</a></li>
<li><a href="#" id="">Oranges</a></li>
</ul>
<ul class="nav nav-justified collapse" id="test2">
<li><a href="#" id="">Hello</a></li>
<li><a href="#" id="">World</a></li>
<li><a href="#" id="">Testing</a></li>
<li><a href="#" id="">Experimenting</a></li>
</ul>
</nav>
</div>
相关文章:
- Wordpress 3级水平导航-需要jquery/javascript帮助进行对齐
- 如何实现水平页面导航系统
- 使用jquery将垂直导航更改为水平导航
- 滑块水平缩略图导航器大小和图像数量
- 无法在WordPress主题中居中水平导航
- 具有垂直滚动条的水平滚动条页面导航
- 引导区悬停水平子导航
- 水平滚动jQuery固定导航
- 在winjs中的水平列表视图中进行左右导航
- CSS垂直导航菜单,带有水平子菜单和半透明带
- 水平滚动导航条不能正常工作
- 固定导航在ios移动时水平滚动
- 引导水平导航条与垂直下拉CSS
- 键盘水平导航
- 引导4:当导航条折叠时,li项水平显示在导航条品牌旁边
- 导航栏中的水平图标
- 鼠标悬停时水平展开导航条
- CSS切换导航水平以及垂直屏幕上调整大小
- 做一个响应式的Javascript水平导航,中间有Logo
- Jquery/JS和CSS水平列表导航单击下拉超链接不工作