CSSでheight(高さ)プロパティをアニメーションさせる方法
CSSで要素のheight(高さ)プロパティをアニメーションさせたい場合は、@keyframesルールとanimationプロパティを組み合わせて使います。以下のサンプルコードを実行すると、div要素の高さが一定間隔で滑らかに変化するアニメーションを確認できます。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<style>
div {
border: 2px solid black;
width: 300px;
height: 100px;
animation: myanim 5s infinite;
}
@keyframes myanim {
30% {
height: 400px;
}
}
</style>
</head>
<body>
<div>This is demo text</div>
</body>
</html>
コードの解説
@keyframes myanimでは、アニメーションの進捗30%の時点で高さを100pxから400pxへ変化させています。animationプロパティに「5s(5秒間)・infinite(無限リピート)」を指定しているため、高さの伸縮が繰り返し再生されます。
補足ポイント
height: autoは数値でないため、そのままではスムーズなアニメーションの対象になりません。具体的なpx値や%値を指定しましょう。- 高さの代わりに
max-heightをアニメーションさせると、アコーディオンメニューなど「開閉」の演出にも応用できます。 - 頻繁なレイアウト再計算が発生するため、パフォーマンスを重視する場面では
transform: scaleY()の利用も検討するとよいでしょう。
-
CSSのtext-decoration-colorプロパティで下線の色をアニメーションさせる方法
CSSのtext-decoration-colorプロパティは、テキストに表示される下線・上線・取り消し線などの装飾線の色を個別に指定できるプロパティです。この値を@keyframesと組み合わせて変化させることで、下線の色が滑らかに移り変わるアニメーション効果を実現できます。 実装例:text-decoration-colorのアニメーション 以下のコードでは、青い背景のボックスを右へ移動させながら、同時に下線の色をオレンジ色へと変化させています。animationプロパティで「3秒間・無限ループ」の設定にしているため、アニメーションは繰り返し再生されます。 <!DOCTYPE htm
-
CSSのwidthプロパティをアニメーション化する方法
CSSで要素の width(幅)プロパティをアニメーションさせるには、@keyframes ルールと animation プロパティを組み合わせて使用します。幅の変化を滑らかに表現することで、開閉パネルやホバーエフェクトなど、さまざまなインタラクティブな演出が可能になります。実装のポイント@keyframes 内で、アニメーションの途中経過(例:30%)における幅の値を指定します。animation プロパティで、キーフレーム名・再生時間などを設定します。幅は数値(px など)で指定するため、ブラウザは値の補間を行い滑らかなアニメーションを実現します。サンプルコード以下のコードでは、div要素