JQuery菜单打开但随后消失
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery菜单打开但随后消失相关的知识,希望对你有一定的参考价值。
我有一个菜单,我已经设置了样式,但当我点击菜单时,它会闪烁打开,然后立即关闭,点击几下后整个过程就消失了!有什么理由为什么这样做?
我是否需要用其他东西切换出来?我正在使用最新版本的jquery
此外,需要知道是否有更好的方法来中心链接?
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
<header>
<div class="navbar-wrapper">
<nav>
<a class="burger-nav" href=""><i class="material-icons">menu</i></a>
<ul class="navbar">
<li class="nav-items"><a class="navlink" href="#">Home</a></li>
<li class="nav-items"><a class="navlink" href="#">About</a></li>
<li class="nav-items"><a class="navlink" href="#">Blog</a></li>
<li class="nav-items"><a class="navlink" href="#">Contact</a></li>
</ul>
</nav>
</div>
</header>
/* Mobile */
@media only screen and (max-width: 600px) {
.burger-nav {
border: 1px solid black;
display: block;
text-align: center;
width: 100%;
cursor: pointer;
background: #404040;
}
.material-icons {
color: white;
}
header nav ul {
overflow: hidden;
background: #505050;
height: 0;
}
header nav ul.open {
height: auto;
}
header nav ul li {
list-style: none;
width: 100%;
margin: 0;
text-align: center;
}
header nav ul li a {
color: #fff;
padding: 0.625em;
border-bottom: 1px solid #404040;
display: block;
margin: 0;
}
}
/* Normal */
@media only screen and (min-width: 600px) {
.navbar {
list-style: none;
display: flex;
justify-content: space-around;
font-size: 1.5em;
text-align: center;
font-family: 'Poppins', sans-serif;
}
.navlink {
text-decoration: none;
color: inherit;
text-transform: uppercase;
}
.navbar-wrapper {
background-color: #949699;
padding: 2em 0;
box-shadow: inset -0.25em 0 0.25em 0 rgba(0, 0, 0, 0.1);
}
.navlink:hover {
border-bottom: 1px solid lightgrey;
}
.burger-nav {
display: none;
}
}
$(document).ready(function() {
$(".burger-nav").on('click', function() {
$("header nav ul").toggleClass("open");
});
});
答案
问题是你的ul上的height: 0
和ul.open
上设置的自动高度,而不是设置高度为0,只需使用display: block
和display: none
显示/隐藏。
导航器也在消失,因为你的href对于汉堡导航链接是空的,我已经用这些更改更新了codepen。
header nav ul {
overflow: hidden;
background: #505050;
display: none;
/*height: 0;*/
}
header nav ul.open {
/*height: auto;*/
display: block;
}
https://codepen.io/anon/pen/jvmGPO
导航现在按照您的预期切换。
以上是关于JQuery菜单打开但随后消失的主要内容,如果未能解决你的问题,请参考以下文章