我有一个汉堡图标,当点击变成X.再次点击时会变回3行。我有它的工作,所以当点击链接菜单消失,但汉堡菜单不会返回3行。我没有尝试过任何工作。这就是我所拥有的。
var burgerIcon = $('.burger-icon');
function toggleBurger(){
burgerIcon.click(function(){
if(burgerIcon.hasClass("is-active") === true)
{
burgerIcon.removeClass("is-active");
//console.log("remove");
}
else
{
burgerIcon.addClass("is-active");
//console.log("add");
}
});
}
toggleBurger();
$('.toggle-nav').click(function() {
$('body').toggleClass('show-nav');
return false;
});
$('nav ul li > a').click(function(){
//console.log("clicked");;
$('body').trigger( "click" );
burgerIcon.trigger( "click" );
});
HTML:
<nav>
<ul data-magellan-expedition="fixed">
<li data-magellan-arrival="work">
<a href="#work" class="hvr-sweep-to-right">Work</a>
</li>
<li data-magellan-arrival="about">
<a href="#about" class="hvr-sweep-to-right">About</a>
</li>
<li data-magellan-arrival="shadow">
<a href="#shadow" class="hvr-sweep-to-right">Shadow CC</a>
</li>
<li data-magellan-arrival="clients">
<a href="#clients" class="hvr-sweep-to-right">Clients</a>
</li>
</ul>
</nav>
以下是我要解释的内容:jsFiddle
答案 0 :(得分:2)
由于你在代码中使用jQuery,你可以利用它,然后你真正需要的所有东西我相信是这样的:
$('nav ul li > a,.c-hamburger').click(function () {
console.log("clicked");
$('body').toggleClass('show-nav');
if ($('body').hasClass('show-nav')) {
$('.c-hamburger').addClass("is-active");
} else {
$('.c-hamburger').removeClass("is-active");
}
});
更新了小提琴:http://jsfiddle.net/qe38m0t9/2/
注意:这使用两个选择器,一个用于“汉堡包”,另一个用于由逗号分隔的菜单,然后根据点击的内容执行相同的操作。