今回は、CSSの transition-delay プロパティを使って、アニメーションのタイミングを遅らせる方法を紹介します。
transition-delay プロパティとは
transition-delay プロパティは、CSSトランジションの開始タイミングを遅らせるために使用されます。
値を秒単位で指定することで、アニメーションが開始されるまでの時間をコントロールできます。
使用方法
.class { transition: 1s ease-out; transition-delay: .6s; /* アニメーション開始を0.6秒遅らせる */ }
この例では、.classを持つ要素に対して、すべてのプロパティの変更に1秒かけてイージング効果を適用します。
さらに、 transition-delay: .6s; を追加することで、アニメーション開始を0.6秒遅らせています。
transition-delayの使い方
transition-delayプロパティは、次の場面で利用します。
- アニメーションの開始タイミングを調整して、より自然な動きにする
- 複数のアニメーションを組み合わせたときに、それぞれのアニメーションがスムーズに繋がるようにする
- ユーザーの操作に連動してアニメーションを開始する
具体的な使い方
アニメーションの開始タイミングを調整する
例えば、ページ読み込み時に要素をフェードインさせるアニメーションを作成する場合、transition-delayプロパティを使って、アニメーション開始を少し遅らせることで、より自然な動きにすることができます。
複数のアニメーションを組み合わせたときに、それぞれのアニメーションがスムーズに繋がるようにする
例えば、要素を移動してから回転させるアニメーションを作成する場合、transition-delayプロパティを使って、回転アニメーション開始を移動アニメーション終了後に設定することで、それぞれのアニメーションがスムーズに繋がるようにすることができます。
ユーザーの操作に連動してアニメーションを開始する
例えば、ボタンをクリックしたときに要素の色を変えるアニメーションを作成する場合、transition-delayプロパティを使って、アニメーション開始をボタンクリック後に設定することで、ユーザーの操作に連動してアニメーションを開始することができます。
transition-delayを使った例
次に、transition-delayを使ったアニメーション例を実際に触って見ていきましょう。
この例では、ボタンをホバーした際の挙動で確認することがでいます。
hoverすると0.6秒後にアニメーション
ボタン
.demo1 { transition: 4s; transition-delay: .6s; } .demo1:hover { transform: translate(1000px, 1000px) scale(.2) rotate(4000deg); }
hoverすると1秒後にアニメーション
ボタン
.demo2 { transition: 4s; transition-delay: 1s; } .demo2:hover { transform: scale(.0001); }
hoverすると4秒後にアニメーション
ボタン
.demo3 { opacity: 0; transform: translateY(-6px); transition: .3s ease-out; transition-delay: 4s; } .demo3:hover { opacity: 1; transform: translateY(0); }
このようにtransition-delayを使って遅延処理をすることで、面白い動きをサイトに追加が可能になります。
またアクションした後に戻るアニメーションもtransition-delayの効果で遅延が発生するのが注意です!
コメント