サブメニューのアニメーションを作成して、ヒンジのように親メニューの後ろからドロップインしようとしています。最終静止位置を少し過ぎてから戻ってきてほしい。関数表記の私の理解からcubic-bezier()
、これは可能であるはずです。バグなのか、単に私の勘違いなのかわかりませんが、うまく動かないようです。すべてのベンダー プレフィックスを削除しました (デモに含まれています) が、使用しているコードは次のとおりです。
HTML
<ul class="nav">
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="about.html">About</a>
<ul>
<li>
<a href="about.html#company">Company</a>
</li>
<li>
<a href="about.html#team">Team</a>
</li>
</ul>
</li>
<li>
<a href="contact.html">Contact</a>
</li>
</ul>
CSS
ul {
background-color:#99f;
border-radius:10px;
list-style:none;
margin:0;
padding:0;
}
ul:after {
clear:both;
content:'';
display:block;
height:0;
margin:0;
padding:0;
width:100%;
}
.nav > li {
display:block;
float:left;
perspective:600px;
perspective-origin:100% 100%;
transition:background-color .2s .4s;
}
.nav li a {
color:#fff;
display:block;
padding:20px;
text-decoration:none;
}
.nav li ul {
background-color:#bbf;
border-radius:0 0 10px 10px;
position:absolute;
transform:rotateX(-90deg);
transform-origin:0 0 0;
transition:transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.nav li:hover {
background-color:#bbf;
-webkit-transition-delay:0;
}
.nav li:hover ul {
transform:rotateX(0);
transition-delay:.2s;
}
.nav li li {
white-space:nowrap;
}
したがって、この MDN 記事の情報に基づいて、Y 軸で 1 より大きい値を持つことができ、バウンス効果が可能になりますcubic-bezier()
。理論的には、これはcubic-bezier()
私が使用しているサブメニューを -90 度から約 15 度まで下げてから 0 度に戻す必要があることを意味します。
残念ながら、その動作は見られません。cubic-bezier()
タイミング関数をまったく使用しない場合と比較して、アニメーションのタイミングに影響を与えることがわかりますが、期待するバウンス効果は得られません。
-90 度から 0 度を超えることと関係があると思いますが、この時点で非常に迷っています。cubic-bezier()
関数で曲線を使用しrotateX()
てこのタイプの効果を生成することに関するドキュメントや、この種の回転をサポートしているかどうか、または世界で何が起こっているかを示すドキュメントを見つけることができませんでしrotateX()
た...助けてください。