CSSスケールトランスフォームトランジションによるズーム効果
CSS transitionとtransform: scale()を使用したスムーズなスケール/ズーム効果の構築。画像サムネイル、ボタン、インタラクティブ要素に最適。
Basic Transitions
詳細な説明
スケールトランスフォームによるズーム効果
scale()トランスフォーム関数は、要素をその中心点から拡大または縮小します。CSSトランジションと組み合わせることで、スムーズなズームイン/ズームアウト効果を作成します。
CSSコード
.thumbnail {
transform: scale(1);
transition: transform 0.2s ease-in-out;
}
.thumbnail:hover {
transform: scale(1.05);
}
スケール値の理解
scale(1)— 要素の元のサイズ(100%)scale(1.05)— 元より5%大きいscale(0.95)— 5%小さい(クリック/アクティブフィードバックに便利)scale(1.5)— 50%大きい(劇的なズーム)
transform-origin
デフォルトでは、スケーリングは要素の中心から行われます。transform-originで変更できます:
.thumbnail {
transform-origin: top left;
transition: transform 0.2s ease-in-out;
}
これにより、要素は左上隅からスケーリングされます。ツールチップやコンテキストメニューに便利です。
アクティブ状態のフィードバック
人気のパターンは、ホバーでのスケールアップとアクティブでのスケールダウンを組み合わせたボタンプレスフィードバックです:
.button {
transition: transform 0.15s ease;
}
.button:hover {
transform: scale(1.05);
}
.button:active {
transform: scale(0.97);
}
パフォーマンス
すべてのtransformアニメーションと同様に、scale()はGPUアクセラレーションされます。レイアウトに影響しないため、対象の要素が視覚的に拡大・縮小しても周囲の要素はそのままの位置に留まります。
ユースケース
スケールトランジションは、画像ギャラリーのサムネイル、インタラクティブなボタン、アバターのホバーエフェクト、ズームのような効果でユーザーインタラクションに反応すべきUI要素に最適です。