【发布时间】:2014-10-03 18:32:39
【问题描述】:
我正在尝试实现类似于 Google Plus 的响应式菜单,在调整窗口大小时,主菜单选项会添加到“更多”下拉菜单中或从“更多”下拉菜单中删除。
我目前的菜单是这样的:
代码如下:
// JQuery
$(document).ready(function() {
$("a.drop-menu").click(function () {
$('#drop-menu').toggle();
});
});
<!-- HTML -->
<ul id="navigation">
<li><a href="#" class="active">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Calendar</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="javascript:;" class="drop-menu">More</a>
<ul id="drop-menu">
<li><a href="#">Contact</a></li>
<li><a href="#">Contact</a></li>
</ul></li>
</ul>
/* CSS */
#navigation {
list-style-type: none;
padding: 0px;
margin: 0px;
}
#navigation li {
display: inline-block;
}
#navigation li a:link, #navigation li a:visited, #navigation li a:active {
display: block;
width: 120px;
line-height: 50px;
text-align: center;
font-weight: bold;
text-decoration: none;
background-color: #27383F;
color: #CCC8C0;
}
#navigation li a:hover, #navigation li a.active {
background-color: #2C3C53;
}
#drop-menu {
display: none;
position: absolute;
padding: 0px;
margin: 0px;
}
#drop-menu li {
display: block;
}
目前,当调整浏览器窗口大小时,菜单选项会按如下方式折叠:
但是,下图是我想要的结果:
我想知道是否有一种方法可以在没有媒体查询的情况下完成此任务?更具体地说:
- 如何动态检测窗口大小是否足够大或太小而无法在单行的主导航中包含
li标签? - 如何在一个菜单和另一个菜单之间交换
li标签?
【问题讨论】:
-
我对非 JavaScript 解决方案很感兴趣。
-
我有一个基于你的问题:stackoverflow.com/questions/25236532/…
标签: javascript jquery css responsive-design