2 回答
TA贡献1890条经验 获得超9个赞
这是一个工作示例。还有一些你应该知道的事情;
HTML
最好有菜单ID 。因为类名menu
很常见,而且您在构建网站时可能很容易遇到样式问题。列表 ( ) 中也没有必要有一个 div <li>...</li>
。(如果需要,锚标记( <a>...</a>
) 将是比 更好的选择div
。)您可以像这样简化它。
<nav id="menu">
<ul>
<li>MENU 1</li>
<li>MENU 2</li>
<li>MENU 3</li>
<li>MENU 4</li>
</ul>
</nav>
CSS
您不需要使用 jQuery 来实现样式hover。您可以使用 css 高效地完成它。像这样。
#menu li {
font-family: 'Gotham-Medium';
cursor: pointer;
}
#menu li:hover {
text-decoration: underline;
}
查询
您不必为每个导航元素编写代码。您可以使用该类来隐藏和仅显示单击的内容。像这样。
$("#menu li").on("click", function(e) {
e.preventDefault();
$("#menu li").hide();
$(this).show();
});
TA贡献1963条经验 获得超6个赞
对于悬停状态,请使用 CSS。对于 CSS,我的意思是使用:hover选择器。您应该在所有菜单按钮上添加一个类,然后定位它们。例子:
// HTML
<nav class="menu">
<ul>
<li><div class="menu-item" id="menu1">menu1</div></li>
<li><div class="menu-item" id="menu2">menu2</div></li>
<li><div class="menu-item" id="menu3">menu3</div></li>
<li><div class="menu-item" id="menu4">menu4</div></li>
</ul>
</nav>
// CSS
.menu-item:hover {
text-decoration: underline;
cursor: pointer;
}
为了在点击时显示内容,您应该使用与使用 jQuery 添加 css 相同的方法,即使用this. 由于我们在菜单按钮上添加了一个类,我们可以使用它来添加我们的事件侦听器,然后我们还可以在所有菜单内容上添加一个类并将它们全部隐藏在一起。通过在菜单按钮 id 和内容 id 之间保持一种模式,我们可以得到一个通用的解决方案。
$(".menu-item").click(function(){
$(".menu-content").hide();
$('#'+$(this).attr('id') + '-content').show();
});
在这里查看工作小提琴:https ://jsfiddle.net/etqwf3kr/
添加回答
举报