「状態」間の異なる遅延切り替えでCSS3遷移を使用することは可能ですか?たとえば、ホバーするとすぐに「マウスアウト」で要素をすぐに高くして、要素の初期高さに戻る前に1秒待つようにしようとしています。
デモページ:jsfiddle.net/RTj9K (右上隅の黒いボックスにカーソルを合わせる)
CSS:#bar { transition:.4s ease-out 0, 1s; }
最後のタイミングは遅延に関係していると思いましたが、思ったように機能していないようです。
hover
とmouseout
で異なるCSS遷移遅延が必要な場合は、関連するセレクターを使用してそれらを設定する必要があります。以下の例では、要素がホバーされると、ホバーの初期遅延は0
しかしmouseout
では、遷移は1s
。
/* These transition properties apply on "mouseout" */
#bar { transition:height .5s ease-out 1s; }
/* These transition properties apply on hover */
#bar:hover { transition:height .5s ease-out 0s; }
以下の私の質問の更新されたデモで完全なCSSを見つけることができます。簡略表記のtransition
プロパティを使用しました。値の順序は次のとおりです。
transition:<property> <duration> <timing-function> <delay>;
ここに簡略化された JSFiddleの例 があります。基本的に transition-delay
プロパティ:
#transform {
height:40px;
width:40px;
background-color:black;
transition: .4s ease-out;
transition-delay: 2s;
/*or shorthand: transition: .4s ease-out 2s;*/
}
#transform:hover {
transition: .4s ease-out;
width:400px;
}
/* These transition properties apply on "mouseout" */
#bar { transition:height .5s ease-out 1s; }
/* These transition properties apply on hover */
#bar:hover { transition:height .5s ease-out 0; }
「s」(秒)記号を入力しないと、これは機能しないと言うだけなので、
/* These transition properties apply on "mouseout" */
#bar { transition:height .5s ease-out 1s; }
/* These transition properties apply on hover */
#bar:hover { transition:height .5s ease-out 0s; } /* note "0s" */