【发布时间】:2015-06-24 08:27:15
【问题描述】:
我正在尝试为我的网站构建适合移动设备的导航,并且我想使用在按下菜单链接后向下滑动的菜单。我认为这很简单,但它不起作用。当我单击链接“菜单”时,没有任何反应。它应该使用 jQuery 的 .slideToggle 功能显示一个菜单。如果您可以提供修复或替代方法来制作响应式和移动友好的菜单。
<script>
$(document).ready(function(){
$("#burger").click(function(){
$("#menu").slideToggle();
});
});
</script>
<!-- END OF SCRIPTS -->
<!-- HEADER -->
<header>
<div id="top">
<a href="#" id="logo"><img src="root/logo.png"></a>
<div id="burger">
<a>Menu</a>
</div>
</div>
<nav id="navbar">
<ul id="menu">
<li><a href="#">Option 1</a></li>
<li><a href="#">Option 2</a></li>
<li><a href="#">Option 3</a></li>
<li><a href="#">Option 4</a></li>
<li><a href="#">Option 5</a></li>
</ul>
</nav>
</header>
<!-- END HEADER -->
</body>
</head>
这是我的 CSS:
/* HEADER */
header {
width: 100%;
background-color: #012d5a;
height: 150px;
}
#top {
width: 80%;
margin-left: auto;
margin-right: auto;
}
#top img{
height: 110px;
margin-left: 0px;
}
#navbar {
width: 100%;
height: 40px;
background-color: #B9E0F6;
display: block;
color: #000;
font-family: helvetica;
font-size: 16px;
font-weight: 600;
}
#menu {
display: block;
width: 600px;
margin: auto;
height: 40px;
}
#menu li {
float: left;
width: 120px;
display: inline;
padding-top: 10px;
height: 40px;
border-right: 2px solid #000;
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
text-align: center;
}
#menu li:last-child {
border-right: 0;
}
#burger {
display: none;
float: right;
}
/* Responsive Menu */
@media only screen and (max-device-width: 767px) {
/* define mobile specific styles here */
#burger {
display: block;
}
#navbar {
height: auto;
position: relative;
z-index: 1;
}
#menu {
display: none;
height: 200px;
width: 100%;
}
#menu li {
display: block;
float: none;
width: 50%;
border: none;
margin: auto;
}
#top {
width: 100%;
}
}
【问题讨论】:
-
到底是什么问题?这在哪里不起作用?
-
你想要的很难理解,你仍然可以从汉堡 div 类中删除 display:none。
-
当我点击菜单按钮时,菜单不会出现。根本没有出现
标签: javascript jquery html css responsive-design