[英]Drop down menu is Glitchy at the edge of menu button
我有一个奇怪的问题。 我创建了一个标准的下拉菜单,但是当我在菜单和下拉菜单之间切换时,菜单消失了。 我找不到任何可以停止悬停状态的CSS,但也许您的眼睛比我的更好。
这是正在发生的事情的图像: http : //imgur.com/axF6skK
我的js代码:
//------- NAV MENU --------//
$('nav li').hover(
function () {
$('ul', this).stop(true,true).fadeIn({ duration: 300, queue: false }).slideDown(300);
},
function () {
$('ul', this).stop(true,true).fadeOut({ duration: 300, queue: false }).slideUp(300);
});
相关HTML:
<nav>
<ul class="center">
<li class="menu">
<a href="#Home">Home</a>
</li>
<li class="menu">
<a class="inactive">Get Started</a>
<ul class="dropdown hidden" id="drop1">
<li class="dropitem"><a href="#Start">Start Making Your CCR</a></li>
<li class="dropitem"><a href="#HowItWorks">How CCR Writer Works</a></li>
<li class="dropitem"><a href="#Why">Why Choose CCR Writer</a></li>
<li class="dropitem"><a href="#MyPrevious">Access My Previous CCRs</a></li>
</ul>
</li>
</ul>
</nav>
相关CSS:
nav > ul {
margin: 0 auto;
padding: 0;
list-style-type: none;
height: 100px;
float: right;
padding-right: 30px;
}
li.menu {
display: inline-block;
padding:0;
margin: 0;
padding-left: 15px;
padding-right: 15px;
height: 100px;
position: relative;
}
li.menu:hover { background-color: #FFFFFF; }
li.menu a {
font-size: 12pt;
padding-top: 33px;
display: table-cell;
vertical-align: middle;
position: relative;
}
li.menu:hover a { color: #232323; }
li.dropitem {
padding: 0;
margin: 0;
}
li.dropitem:hover { background-color: #DADADA; }
li.dropitem a {
color: #232323;
margin: 0;
padding: 10px;
padding-left: 15px;
padding-right: 15px;
font-size: 13pt;
}
ul.dropdown {
position: absolute;
white-space: nowrap;
width: auto;
min-width: 100%;
top: 100px;
left: 0;
padding-top: 0;
margin: 0;
padding-bottom: 10px;
z-index: -1;
border: none;
border-radius: 0px 0px 2px 2px;
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
background-color: #FFF;
height: auto;
}
尝试使用display: inline-flex
而不是display: inline-block
。
li.menu {
display: display: inline-flex;
padding:0;
margin: 0;
padding-left: 15px;
padding-right: 15px;
height: 100px;
position: relative;
}
尝试删除ul.dropdown
上的z-index
。
从此CSS删除z-index: -1
:
ul.dropdown {
position: absolute;
white-space: nowrap;
width: auto;
min-width: 100%;
top: 100px;
left: 0;
padding-top: 0;
margin: 0;
padding-bottom: 10px;
/* z-index: -1; */ /* <-- Remove this line */
border: none;
border-radius: 0px 0px 2px 2px;
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
background-color: #FFF;
height: auto;
}
您可以通过将stop()
的参数从true
更改为false
来解决此问题:
$('nav li').hover(
function () {
$("ul",this).stop(false,false).fadeIn({ duration: 300, queue: false }).slideDown(300);
},
function () {
$("ul",this).stop(false,false).fadeOut({ duration: 300, queue: false }).slideUp(300);
});
如您在此JSFiddle上看到的: http : //jsfiddle.net/kwdf8fhc/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.