CSS3を使用して見栄えのするドロップダウンメニューを作成することを期待して、アニメーションを使用してスタイルを設定しました。ドロップのタイミングをより細かく制御できるようにするために、トランジションの代わりにアニメーションを使用しました。これはより美的に心地よいと思います。ただし、アニメーションオーバートランジションを使用すると、逆のプロセスをアニメーション化するのがはるかに難しくなるという問題が発生します。メニューを使用しているときにアニメーションを効果的に一時停止して、トランジションの場合と同じように、アニメーションを逆方向にアニメーション化する方法があるかどうか疑問に思いました。
CSSが現在どのようになっているのかを次に示します。
@-webkit-keyframes s-menu-down /*Safari and Chrome */ {
0% { width: 100%; height: 0px;}
100% { width: 180px; height: 27px;}
}
@-moz-keyframes s-menu-down /*Firefox */ {
0% { width: 100%; height: 0px;}
100% { width: 180px; height: 27px;}
}
@keyframes s-menu-down {
0% { width: 100%; height: 0px;}
100% { width: 180px; height: 27px;}
}
@-webkit-keyframes s-menu-down-text /*Safari and Chrome */ {
0% { color: rgba(84, 83, 81, .0); text-shadow: none;}
100% { color: rgba(84, 83, 81, 1.0); text-shadow: rgba(238, 238, 238, 1.0);}
}
@-moz-keyframes s-menu-down-text /*Firefox */ {
0% { color: rgba(84, 83, 81, .0); text-shadow: none;}
100% { color: rgba(84, 83, 81, 1.0); text-shadow: rgba(238, 238, 238, 1.0);}
}
@keyframes s-menu-down-text {
0% { color: rgba(84, 83, 81, .0); text-shadow: none;}
100% { color: rgba(84, 83, 81, 1.0); text-shadow: rgba(238, 238, 238, 1.0);}
}
ul#secondary li:hover > ul li {
-webkit-animation: s-menu-down .5s linear 0 2 alternate;
-moz-animation: s-menu-down .5s linear 0 2 alternate;
animation: s-menu-down .5s linear 0 2 alternate;
}
ul#secondary li:hover > ul li a {
-webkit-animation: s-menu-down-text .5s linear 0 2 alternate;
-moz-animation: s-menu-down-text .5s linear 0 2 alternate;
animation: s-menu-down-text .5s linear 0 2 alternate;
}
CSSを交互に設定し、繰り返し2を作成することで、メニューを上下に移動させることができます。メニューを使用できるようにするために、反復の合間に一時停止する、ある種のjavascriptソリューションまたはその効果に対する他の何かを探しています。