如何在MouseOver上动画CSS动画汉堡包图标 [英] How To Animate CSS Animated Hamburger Icon On MouseOver
问题描述
我在 http://elijahmanor.com/上有一个动画CSS汉堡包图标css-animated-hamburger-icon / ,我想要使用它,但我想通过悬停来查看设置前(X),而不是悬停时将其设置为3行的默认样式。但我不能这样做,即使我使用悬停功能。
$ b
document.querySelector( #nav-toggle).addEventListener(click,function(){this.classList.toggle(active);});
#nav-toggle {position:absolute;剩下:50%; top:50%;}#nav-toggle {cursor:pointer; padding:10px 35px 16px 0px;}#nav-toggle span,#nav-toggle span:before,#nav-toggle span:after {cursor:pointer; border-radius:1px; height:5px;宽度:35px;背景:黑色;位置:绝对;显示:块; content:'';}#nav-toggle span:before {top:-10px;}#nav-toggle span:after {bottom:-10px;}#nav-toggle span,#nav-toggle span:before,#nav -toggle span:{transition:all 500ms ease-in-out;}#nav-toggle.active span {background-color:transparent;}#nav-toggle.active span:before,#nav-toggle.active span:在{top:0;}之后#nav-toggle.active span:before {transform:rotate(45deg);}#nav-toggle.active span:{transform:rotate(-45deg);}
< a id =nav-togglehref =#><<< ; span>< / span>< / a>
>解决方案
悬停事件称为 mouseover
。
事件名称是传统的 HTML DOM事件,只是没有
打开前缀。例如,使用mouseover
而不是onmouseover
。
document.querySelector(#nav-toggle).addEventListener(mouseover,function(){this.classList.toggle(active);}) ;
#nav-toggle {position:absolute;剩下:50%;顶部:50%; }#nav-toggle {cursor:pointer; padding:10px 35px 16px 0px; }#nav-toggle span,#nav-toggle span:before,#nav-toggle span:after {cursor:pointer; border-radius:1px; height:5px;宽度:35px;背景:黑色;位置:绝对;显示:块; 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);}#nav-toggle.active span:after {transform:rotate(-45deg);}
< a id =nav-togglehref =#>< span>< / span>< / a>
I've got an animated CSS Hamburger icon at http://elijahmanor.com/css-animated-hamburger-icon/ and I wanna need to use it but I want to use it via hover to view set ex(x) and when not hover set it to default style that 3 lines. But I cannot do that even I used hover function.
document.querySelector("#nav-toggle")
.addEventListener("click", function() {
this.classList.toggle("active");
});
#nav-toggle {
position: absolute;
left: 50%;
top: 50%;
}
#nav-toggle {
cursor: pointer;
padding: 10px 35px 16px 0px;
}
#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);
}
#nav-toggle.active span:after {
transform: rotate(-45deg);
}
<a id="nav-toggle" href="#"><span></span></a>
The hover event is called mouseover
.
The events name are the classic HTML DOM Events, just without the on prefix. For example, use
mouseover
instead ofonmouseover
.
document.querySelector( "#nav-toggle" )
.addEventListener( "mouseover", function() {
this.classList.toggle( "active" );
});
#nav-toggle { position: absolute; left: 50%; top: 50%; }
#nav-toggle { cursor: pointer; padding: 10px 35px 16px 0px; }
#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);
}
#nav-toggle.active span:after {
transform: rotate(-45deg);
}
<a id="nav-toggle" href="#"><span></span></a>
这篇关于如何在MouseOver上动画CSS动画汉堡包图标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!