2枚の画像を用意し、クリックで紙の表裏をペラッとめくるようにアニメーションで切り替える方法。楽しい視覚効果を、HTMLとCSSで実装します。
2枚の画像を用意
表の画像
裏の画像
切り替えたい表と裏の2枚の画像を用意します。サイズは違っても構いませんが、アスペクト比を合わせておく必要があります。
普通に切り替える
通常の切り替え
これはシンプルに画像Aと画像Bをクリックごとに切り替えるパターンです。当然ながらオモテウラ感はありません。
-
【JavaScript】触れる・クリックの両方で2枚の画像を切り替える方法【PC・スマホ対応】
続きを見る
ペラッと紙をめくるように切り替える
ペラッと切り替え
これは2枚の画像をカードの表裏をひっくり返すように切り替えるパターンです。
デフォルトは表の画像を表示し、クリックすると回転しながら裏の画像にチェンジ。もう一度クリックすると、表の画像に戻ります。
アスペクト比だけでなく、2枚の画像の形状(縁取りなど)も合わせておくと、よりオモテウラ感が出せます。
ソースコード
HTMLコード
<div class="flip-container" onclick="this.classList.toggle('is-flipped')" style="max-width: 300px;"> <div class="flip-image"> <img src="omote.jpg" alt="表"> <img src="ura.jpg" alt="裏"> </div> </div>
画像のサイズはmax-width: 300px;の数字をイジると調整できます。
スマホなどの画面が小さいデバイスにおいて、max-width:◯◯px;に設定した値がデカい場合は、画面の横幅に合わせて自動的にリサイズされます。
CSSコード
.flip-container { width: 100%; perspective: 1000px; cursor: pointer; } .flip-image { width: 100%; transition: transform 0.6s ease-in-out; transform-style: preserve-3d; position: relative; } .flip-image img { width: 100%; height: auto; object-fit: contain; display: block; backface-visibility: hidden; } .flip-image img:nth-child(1) { transform: rotateY(0deg); } .flip-image img:nth-child(2) { transform: rotateY(180deg); position: absolute; top: 0; left: 0; } .flip-container.is-flipped .flip-image { transform: rotateY(180deg); }