我正在尝试为我的导航栏做一个切换按钮。在小于667px的屏幕上,我想隐藏导航栏并显示切换按钮。单击时应显示和隐藏导航栏li。
切换按钮在max-width: 667px上工作良好,但当我调整大小时,导航栏在屏幕宽度大于667px时仍然隐藏
HTML
<div id="navbar" class="navbar">
<div class="logo">
<a href="index.html"><img src="images/logo.png" width="125px" alt="logo"></a>
</div>
<nav>
<ul class="slide">
<li><a href="#home">Home</a></li>
<li><a href="#products">Products</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<a class="navbar-toggle">
<i class="fa fa-bars"></i>
</a>
</nav>
</div>CSS
.navbar{
display: flex;
align-items: center;
padding: 20px;
}
.slide {
display: block;
}
.navbar-toggle {
flex: 1;
text-align: right;
display: inline-block;
list-style: none;
cursor: pointer;
display: none;
}
@media screen and (max-width: 667px) {
.navbar-toggle {
display: block;
}
.slide {
display: none;
}
}JS
$(document).ready(function() {
$('.navbar-toggle').on('click', function(){
$('.slide').toggle();
return false;
});
});发布于 2021-05-29 03:24:18
为min-width添加!important标志,它应该可以正常工作:
@media screen and (min-width: 667px) {
.slide {
display: block!important;
}
}
$('.navbar-toggle').on('click', function(){
$('.slide').toggle();
return false;
});.navbar{
display: flex;
align-items: center;
padding: 20px;
}
.slide {
display: block;
}
.navbar-toggle {
flex: 1;
text-align: right;
display: inline-block;
list-style: none;
cursor: pointer;
display: none;
}
@media screen and (max-width: 667px) {
.navbar-toggle {
display: block;
}
.slide {
display: none;
}
}
@media screen and (min-width: 667px) {
.slide {
display: block!important;
}
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<div id="navbar" class="navbar">
<div class="logo">
<a href="index.html"><img src="images/logo.png" width="125px" alt="logo"></a>
</div>
<nav>
<ul class="slide">
<li><a href="#home">Home</a></li>
<li><a href="#products">Products</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<a class="navbar-toggle">
<i class="fa fa-bars"></i>
</a>
</nav>
</div>
发布于 2021-05-29 03:29:21
您需要添加一个单独的事件侦听器,该侦听器在事件发出时触发函数。jQuery提供了使用.on('resize')监听窗口大小调整事件的功能。只要调整窗口大小,就会触发此操作。在JavaScript文件中使用这段代码
$(window).on('resize', function () {
if ($(window).width() > 667) {
$('.slide').show();
}
});https://stackoverflow.com/questions/67744317
复制相似问题