我有一个汉堡图标,当点击时变成了一个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
发布于 2015-08-01 05:55:10
既然你在你的代码中使用了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");
}
});更新的fiddle:http://jsfiddle.net/qe38m0t9/2/
注意:这使用了两个选择器,一个用于“汉堡包”,另一个用于用逗号分隔的菜单,然后根据单击的内容执行相同的操作。
https://stackoverflow.com/questions/31752696
复制相似问题