hover
image swap on hover
ワークス一覧のサムネイルにホバーすると2枚目の画像に切り替わる動き。「表はビジュアル、裏は現場写真」のように情報量を倍にできる定番。切替方式はopacityのクロスかクリップのワイプ。
02 — Prompt template
03 — Params
duration(切替時間 s) — 範囲 0.15〜0.8 / 初期 0.3
0.25〜0.4sが自然。速すぎると点滅に、遅いと2枚が混ざった状態が目立つ。mode(切替方式) — 選択: crossfade / clip-wipe(初期: crossfade)
crossfadeは溶けるように、clip-wipeは左から拭き取るように切り替わる。
04 — Vocab
crossfade — 2枚を重ねてopacityで溶かすように切り替える方式。もっとも汎用的で失敗が少ない。
clip-path: inset() — 要素を矩形で切り抜くCSS。insetの右辺を100%→0にすると左から拭き取るワイプになる。
事前読込 — 2枚目を最初からDOMに置いて読み込ませておくこと。ホバー時のsrc差し替えはチラつきの元。
object-fit: cover — 縦横比の違う画像を枠いっぱいに敷き詰める指定。2枚のサイズ差を吸収し切替中のズレを防ぐ。
05 — NG → OK examples
NG
言い方: 「「ホバーしたら画像が変わるようにして」」
なぜNG: ホバー時に img の src を差し替えるだけの実装が返ってきがち。2枚目が未読込だと一瞬白くチラつき、切替アニメーションも付かない。重ねて opacity か clip で切り替えるのが正解と伝わらない。
OK
言い方: 「「image swap on hoverを実装。2枚を重ねて上をopacity 0→1の0.3sでクロス、両方object-fit: cover、2枚目は事前読込、leaveで戻す」」
なぜOK: 重ね方式・切替プロパティ・数値・事前読込まで指定。「srcを差し替えない」ことが品質の分かれ目なので、実装構造から指示する。
