【发布时间】:2014-05-26 14:08:14
【问题描述】:
我正在制作一个汉堡风格的菜单图标,我想在点击时将其动画化为“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
【问题讨论】:
-
如果您使用 javascript 添加类,它应该显示
#nav-toggle.active。:active是一个伪选择器。 -
这里可以正常工作jsfiddle.net/viphalongpro/rf2qD/4,
:active是一个状态选择器,而不是一个类。
标签: javascript jquery html css