0
マウス入力時にアニメーションクラスを追加するjQueryがあり、マウスが要素を離れるときに別のクラスを追加します。基本的にはIn/Outアニメーションが必要です。私はフェイディングを達成しています。アニメーションでは、マウスで離れるとアニメーションなしで要素が消えます。したがって、アニメーションは表示されますが、放棄は表示されません。jQueryを入力して終了するCSSアニメーション
のjQuery:アニメーション化しようとしているイム
$('.menu > ul > li').on({
mouseenter: function() {
if (getWindowWidth() >= responsiveBreakpoint) {
$(this).children('ul').removeClass('fadeOutUp').addClass('fadeInDown');
}
},
mouseleave: function() {
if (getWindowWidth() >= responsiveBreakpoint) {
$(this).children('ul').removeClass('fadeInDown').addClass('fadeOutUp');
}
}
});
CSS
@keyframes fadeInDown {
from {
display: none;
opacity: 0;
transform: translate3d(0, -20px, 0);
}
to {
display: block;
opacity: 1;
transform: none;
}
}
.fadeInDown {
animation: .2s ease;
animation-name: fadeInDown;
}
@keyframes fadeOutUp {
from {
display: block;
opacity: 1;
transform: none;
}
to {
display: none;
opacity: 0;
transform: translate3d(0, -20px, 0);
}
}
.fadeOutUp {
animation: .2s ease;
animation-name: fadeOutUp;
}
そして要素は次のようにスタイリングされています
> ul {
display: none;
position: absolute;
z-index: 99;
left: 0;
width: 100%;
background: $hover-and-dropdown-bg;
}
'display'がアニメーションすることができません。または、表示されるか、または非表示になります。中級レベルではありません。同じものを実現するために、不透明度の種類などを使用します。しかし、私はあなたがアニメーションが子供たちに発生するので、あなたはJavaScriptコードが必要ではないと思う、あなたは同じ純粋なCSS( ':ホバー' pseudoclass)を達成することができます。 –
私はマウスの表示をアニメーション化することができました。私のコードを見てください。どうすればいいですか、私はちょっと別の方法が必要です。マウスを離してください。 – riogrande
** NO **。あなたは 'opacity'をアニメーション化していますが、' display'は動かないので、アニメーション 'display'はスペックとロジックでは不可能です。 –