我试图做这个响应式菜单。
在桌面版上,它会在满足最大宽度时显示整个面板:600px(平板电脑和手机大小)。它只显示标题,然后当您单击它时,它将显示菜单内部。如果你调整浏览器的大小,你可以回到桌面版和移动版。我不想使用插件。
我确实尝试过桌面版,它确实有用。我不知道如何使其响应。当我的断点是600px并且我点击不同的.menuCol h2时它将显示并隐藏。当我的断点大于600px时(当我调整浏览器大小时),一些.menuList被隐藏。
function menuToggle() {
$('#menuBtn').click(function() {
var menuBtn = $('#menuBtn');
var menuInner = $('.menuInner');
if ($(menuInner).is(':hidden')) {
$(menuBtn).text('close');
} else {
$(menuBtn).text('menu');
}
$(menuInner).fadeToggle(200);
});
}
menuToggle();
function menuMobile() {
$(".menuCol h2").click(function() {
$(".menuList").slideUp();
if (!$(this).next().is(":visible")) {
$(this).next().slideDown();
}
});
}
menuMobile();

body {
font-size: 13px;
margin-top: 80px;
}
a {
text-decoration: none;
color: #434141;
}
ul {
list-style-type: none;
padding: 0;
}
#toggleMenu {
text-align: center;
max-width: 1000px;
margin: 0 auto;
}
#menuBtn {
background-color: #fa7361;
text-transform: uppercase;
font-size: 15px;
color: #434141;
padding: 2px 6px;
margin-bottom: 24px;
display: inline-block;
}
.menuInner {
text-align: left;
background-color: #cce9ec;
padding: 5%;
overflow: hidden;
}
.menuInner .menuCol {
margin-bottom: 0;
width: 22.5%;
float: left;
}
.menuInner .menuCol h2 {
font-size: 15px;
text-transform: uppercase;
margin-bottom: 20px;
}
.menuInner li {
margin-bottom: 8px;
margin-right: 3.3%;
}
.menuInner li:last-child {
margin-bottom: 0;
margin-right: 0;
}
.menuList {
display: block;
}
.menuList a:hover {
color: #fa7361;
border-bottom: 1px dotted #fa7361;
}
@media (max-width: 600px) {
.menuInner .menuCol {
float: none;
width: 100%;
text-align: center;
}
.menuInner .menuCol h2 {
cursor: pointer;
}
.menuInner .menuCol h2:hover {
display: inline-block;
color: #fa7361;
border-bottom: 1px dotted #fa7361;
}
.menuCol:last-child h2 {
margin-bottom: 0;
}
.menuList {
display: none;
}
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="toggleMenu">
<a id="menuBtn" href="#">menu</a>
<ul class="menuInner">
<li class="menuCol">
<h2>Living Room</h2>
<ul class="menuList">
<li><a href="#">sofas & loveseats</a>
</li>
<li><a href="#">chairs</a>
</li>
<li><a href="#">benches</a>
</li>
<li><a href="#">bookcases & shelving</a>
</li>
<li><a href="#">all living room</a>
</li>
</ul>
</li>
<li class="menuCol">
<h2>Bedroom</h2>
<ul class="menuList">
<li><a href="#">beds</a>
</li>
<li><a href="#">mattresses</a>
</li>
<li><a href="#">daybeds & sleepers</a>
</li>
<li><a href="#">floor mirrors</a>
</li>
<li><a href="#">all bedroom</a>
</li>
</ul>
</li>
<li class="menuCol">
<h2>Home Office</h2>
<ul class="menuList">
<li><a href="#">desks</a>
</li>
<li><a href="#">desk chairs</a>
</li>
<li><a href="#">office storage</a>
</li>
<li><a href="#">display ledges</a>
</li>
<li><a href="#">all office</a>
</li>
</ul>
</li>
<li class="menuCol">
<h2>Dining Room</h2>
<ul class="menuList">
<li><a href="#">dining tables</a>
</li>
<li><a href="#">dining chairs</a>
</li>
<li><a href="#">bar & counter stools</a>
</li>
<li><a href="#">dining benches</a>
</li>
<li><a href="#">all dining</a>
</li>
</ul>
</li>
</ul>
</div>
&#13;
答案 0 :(得分:0)
您需要使用媒体查询并重新构建CSS,以使其适用于手机或平板电脑。研究媒体查询。
答案 1 :(得分:0)
#toggleMenu { text-align: center; width: 1000px; margin: 0 auto; }
#menuBtn { background-color: #fa7361; text-transform: uppercase; font-size: 15px; color: #434141; padding: 2px 6px; margin-bottom: 24px; display: inline-block; }
.menuInner { text-align: left; background-color: #cce9ec; padding: 5%; overflow: hidden; }
.menuInner .menuCol { margin-bottom: 0; width: 22.5%; float: left; }
.menuInner .menuCol h2 { font-size: 15px; text-transform: uppercase; margin-bottom: 20px; }
.menuInner li { margin-bottom: 8px; margin-right: 3.3%; }
.menuInner li:last-child { margin-bottom: 0; margin-right: 0; }
.menuList { display: block; }
.menuList a:hover { color: #fa7361; border-bottom: 1px dotted #fa7361; }
@media only screen and (max-width: 800px) { #toggleMenu { width: 100%; }
.menuInner .menuCol { float: none; width: 100%; text-align: center; }
.menuInner .menuCol h2 { cursor: pointer; }
.menuInner .menuCol h2:hover { display: inline-block; color: #fa7361; border-bottom: 1px dotted #fa7361; }
.menuCol:last-child h2 { margin-bottom: 0; }
.menuList { display: none; } }