gpt4 book ai didi

javascript - 如何使用简单的 jquery 和 css 制作响应式菜单

转载 作者:行者123 更新时间:2023-11-28 15:14:17 26 4
gpt4 key购买 nike

我正在尝试使用 Css 和 jQuery 制作一个简单的响应式菜单。我希望 jQuery 脚本只在特定的窗口宽度上工作。当我调整浏览器大小时。这是我的代码。

$(document).ready(function(){
$(".resmenu").click(function(){
$(".menu").slideToggle();
});

$(".submenu").click(function(){
$(this).toggleClass("active_submenu");
$(this).parent().find(".dropdown").slideToggle();
});

});
.container {
width:980px;
margin:100px auto 0 auto;
font-family:arial;
}

ul, li {
margin:0;
padding:0;
}

.resmenu {
display:none;
}

.menu li {
display: inline-block;
position: relative;
}
.menu li a {
font-size: 14px;
text-transform: uppercase;
color: #3b2612;
padding: 6px 17px;
letter-spacing: 1px;
display: block;
text-decoration: none;
}
.menu li:hover a {
background: #444;
color: #fff !important;
}


.menu li ul {
position: absolute;
width: 250px;
z-index: 5;
left: 0px;
top:28px;
display:none;

}
.menu li:hover ul {
display:block;
}
.menu li ul li {
display: block;
}

.menu li ul li a {
padding: 6px 17px;
transition: all 0.2s;
text-transform: capitalize;
}
.menu li ul li a:hover {
background: #000;
}


/*--- responsive ----*/
@media screen and (max-width:768px) {

.resmenu {
color: #fff !important;
display: block;
text-decoration: none !important;
background: #6ca2bd;
padding: 5px 10px;
}
.menu {
display: none;
background: #444444;
}
.menu li {
position: relative;
display: block;
}
.menu li a {
color: #fff;
font-size:14px;
padding: 6px 17px;
}
.menu li a:hover {
background-color: #000;
color: #000;
transition: all 0.3s;
}
.active_submenu {
background-color: #ceb689 !important;
color: #fff !important;
}

.menu li ul {
display: none;
width: 100%;
position: relative;
top: 0px;
display:none;

}
.menu li:hover ul {
display: none;
top: 0px;
}

.menu li a.active {
color: #fff;
font-family: 'opensanssemibold';
}

.menu li ul li a {
background:#333;
}


}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="btm_header">
<a href="javascript:void();" class="resmenu">Menu</a>

<ul class="menu">
<li><a href="#">Menu</a></li>
<li><a href="javascript:void(0);" class="submenu">Dropdown One <span></span></a>
<ul class="dropdown">
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
</ul>
</li>
<li><a href="javascript:void(0);" class="submenu">Dropdown Two <span></span></a>
<ul class="dropdown">
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
</ul>
</li>
<li><a href="#">Menu</a></li>
<li><a href="#">Menu</a></li>
</ul>
</div>
</div>

它在 768 像素的屏幕尺寸上工作,但是当我点击下 zipper 接而不是悬停在超过 768 像素的屏幕尺寸上时,下 zipper 接是滑动切换。我需要此脚本仅在特定宽度上工作。

最佳答案

使用 $(window).width() 获取屏幕的宽度并在您的条件下使用它:

if ($(window).width() < 768) {
// run your code here
}

查看代码片段:

$(document).ready(function() {
$(".resmenu").click(function() {
$(".menu").slideToggle();
});

$(".submenu").click(function() {
if ($(window).width() < 768) {
$(this).toggleClass("active_submenu");
$(this).parent().find(".dropdown").slideToggle();
}
});

});
.container {
width: 980px;
margin: 100px auto 0 auto;
font-family: arial;
}

ul,
li {
margin: 0;
padding: 0;
}

.resmenu {
display: none;
}

.menu li {
display: inline-block;
position: relative;
}

.menu li a {
font-size: 14px;
text-transform: uppercase;
color: #3b2612;
padding: 6px 17px;
letter-spacing: 1px;
display: block;
text-decoration: none;
}

.menu li:hover a {
background: #444;
color: #fff !important;
}

.menu li ul {
position: absolute;
width: 250px;
z-index: 5;
left: 0px;
top: 28px;
display: none;
}

.menu li:hover ul {
display: block;
}

.menu li ul li {
display: block;
}

.menu li ul li a {
padding: 6px 17px;
transition: all 0.2s;
text-transform: capitalize;
}

.menu li ul li a:hover {
background: #000;
}


/*--- responsive ----*/

@media screen and (min-width:769px) {
.menu {
display: block!important;
}
}

@media screen and (max-width:768px) {
.resmenu {
color: #fff !important;
display: block;
text-decoration: none !important;
background: #6ca2bd;
padding: 5px 10px;
}
.menu {
display: none;
background: #444444;
}
.menu li {
position: relative;
display: block;
}
.menu li a {
color: #fff;
font-size: 14px;
padding: 6px 17px;
}
.menu li a:hover {
background-color: #000;
color: #000;
transition: all 0.3s;
}
.active_submenu {
background-color: #ceb689 !important;
color: #fff !important;
}
.menu li ul {
display: none;
width: 100%;
position: relative;
top: 0px;
display: none;
}
.menu li:hover ul {
display: none;
top: 0px;
}
.menu li a.active {
color: #fff;
font-family: 'opensanssemibold';
}
.menu li ul li a {
background: #333;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="btm_header">
<a href="#" class="resmenu">Menu</a>

<ul class="menu">
<li><a href="#">Menu</a></li>
<li><a href="javascript:void(0);" class="submenu">Dropdown One <span></span></a>
<ul class="dropdown">
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
</ul>
</li>
<li><a href="javascript:void(0);" class="submenu">Dropdown Two <span></span></a>
<ul class="dropdown">
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
<li><a href="#">Dropdown</a></li>
</ul>
</li>
<li><a href="#">Menu</a></li>
<li><a href="#">Menu</a></li>
</ul>
</div>
</div>

关于javascript - 如何使用简单的 jquery 和 css 制作响应式菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com