親にカーソルを合わせると、子要素の表示を一時停止しようとしています。
HTML:
<span>
<div>This Is The Child</div>
Some Text in the span
</span>
Css:
span {
position: relative;
}
span div {
display: none;
width: 0px;
opacity: 0;
transition: width 5s;
-webkit-transition: width 5s;
transition: opacity 5s;
-webkit-transition: opacity 5s;
}
span:hover div {
display: inline-block;
width: 150px;
opacity: 1;
}
現在のところ、スパンをホバーすると、divは表示されるまで遅延がありません。一時停止するように修正するにはどうすればよいですか?
ここでフィドル: http://jsfiddle.net/SReject/vmvdK/
いくつかの注意:
私はもともと表示を移行しようとしましたが、エドワードが指摘したように、それは不可能であり、上記も機能しないことを試してみました。
解決済み
「transitionto」スタイリングの「display」プロパティは、遷移アニメーションの発生を停止するように見えます。これを回避するには。表示する子の幅を0pxに設定し、完全に透明にします。次に、「transition to」スタイリングで、正しい幅を設定し、divをソリッドにします。
HTML:
<span>
<div>This Is The Child</div>
Some Text in the span
</span>
Css:
span {
position: relative;
}
span div {
position: absolute;
width: 0px;
opacity: 0;
transition: opacity 5s;
-webkit-transition: opacity 5s;
}
span:hover div {
width: 150px;
opacity: 1;
}
ここでフィドル: http://jsfiddle.net/SReject/vmvdK/
CSSトランジションに関するMDNページ によって参照されるCSSトランジションに関する この記事 によると、display
プロパティはトランジションできるプロパティではありません。
移行する必要のあるプロパティまたは値がいくつかありますが、これらは、執筆時点では指定されておらず、サポートされていません。
background-image
、グラデーションを含む- .。
display
なしと他のものの間
したがって、transition: display 5s;
プロパティをdiv
に適用しても効果はありません。
編集:
更新されたコードに基づいて、display
プロパティを指定しない限り、不透明度と幅で目的の効果を実現できます。行を削除するだけです
display: none;
span div
セクションから、ポップアップメニューにカーソルを合わせると指定したトランジションが使用されます。
display:none;
からdisplay:inline-block
への遷移はアニメーション化できないため、このプロパティはおそらく遷移の最後にのみ変更されます。したがって、不透明度はdiv
がまだ表示されていない間にアニメーション化されます。