我正在制作一个汉堡包式菜单图标,我希望在点击时将其设置为“x”,然后让用户再次单击它以使其返回。但是,如果单击并按住该图标,该图标将仅一直显示动画。
我用来尝试切换活动类的脚本不起作用。
我该如何解决这个问题?
HTML:
<a id="nav-toggle" href="#"><span></span></a>
CSS:
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
cursor: pointer;
border-radius: 1px;
height: 5px;
width: 35px;
background: black;
position: absolute;
display: block;
content: '';
}
#nav-toggle span:before {
top: -10px;
}
#nav-toggle span:after {
bottom: -10px;
}
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
transition: all 500ms ease-in-out;
}
#nav-toggle:active span {
background-color: transparent;
}
#nav-toggle:active span:before, #nav-toggle:active span:after {
top: 0;
}
#nav-toggle:active span:before {
transform:rotate(45deg); -ms-transform:rotate(45deg); -webkit-transform:rotate(45deg);
}
#nav-toggle:active span:after {
transform:rotate(-45deg); -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg);
}
jQuery的:
$(document).ready(function(){
$('#nav-toggle').click( function() {
if($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).addClass('active');
}//
});
});
此处还有jsFiddle
答案 0 :(得分:1)
答案 1 :(得分:0)
你的代码很好。但是有一些观点。
1)你忘了在你的小提琴中加入jQuery Library。
2)您已使用:active
伪元素作为样式,其中.active
代表class
名称
<强> HTML 强>
<a id="nav-toggle" href="#"><span></span></a>
<强> CSS 强>
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
cursor: pointer;
border-radius: 1px;
height: 5px;
width: 35px;
background: black;
position: absolute;
display: block;
content: '';
}
#nav-toggle span:before {
top: -10px;
}
#nav-toggle span:after {
bottom: -10px;
}
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after {
transition: all 500ms ease-in-out;
}
#nav-toggle.active span {
background-color: transparent;
}
#nav-toggle.active span:before, #nav-toggle.active span:after {
top: 0;
}
#nav-toggle.active span:before {
transform:rotate(45deg); -ms-transform:rotate(45deg); -webkit-transform:rotate(45deg);
}
#nav-toggle.active span:after {
transform:rotate(-45deg); -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg);
}
<强>的jQuery 强>
$(document).ready(function(){
$('#nav-toggle').click( function() {
if($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).addClass('active');
}//
});
});
这是您更新的jsfiddle http://jsfiddle.net/rf2qD/5/