以前に投稿した「フェイドイン型フォトギャラリー」のレスポンシブ対応型である。
拡大写真の大きさが、画面サイズに対応して600px以下で縮小するようにした。
レスポンシブ対応フェイドイン型フォトギャラリーサンプル
本サンプル表示用HTML
<div id="stage"> <input type="radio" id="r1" name="gal"> <input type="radio" id="r2" name="gal"> <input type="radio" id="r3" name="gal"> <input type="radio" id="r4" name="gal"> <input type="radio" id="r5" name="gal"> <img style="width:100%" src="wp-images/1.jpg"> <div id="photo1" class="photo"><img src="wp-images/1.jpg"></div> <div id="photo2" class="photo"><img src="wp-images/2.jpg"></div> <div id="photo3" class="photo"><img src="wp-images/3.jpg"></div> <div id="photo4" class="photo"><img src="wp-images/4.jpg"></div> <div id="photo5" class="photo"><img src="wp-images/5.jpg"></div> <div style="padding:0 0;"></div> <div id="thumbs"> <label for="r1"><img src="wp-images/s1.jpg"></label> <label for="r2"><img src="wp-images/s2.jpg"></label> <label for="r3"><img src="wp-images/s3.jpg"></label> <label for="r4"><img src="wp-images/s4.jpg"></label> <label for="r5"><img src="wp-images/s5.jpg"></label> </div> </div>
HTMLのポイント説明
・初期画面に1枚目の写真を表示している。
・サムネイルが、拡大写真の下に並ぶように、#thumbsをposition指定なしに、タグの下部に記述。
・このギャラリーの下に、他の要素を表示させる場合は、単に、このhtmlに続けて記述すればよい。
本サンプル表示用CSS
/*ギャラリー全体のコンテナー*/ #stage { position: relative; max-width: 600px; margin: 0 auto; } /*全サムネイルのコンテナー*/ #thumbs { margin-left:2%; } /*サムネイルの幅、ポインターを手のひら*/ #thumbs label img { width:18.5%; cursor: pointer; } /*ラジオボタンを非表示に*/ #r1, #r2, #r3, #r4, #r5 { display: none; } /*表示写真の初期配置(全部透明に)とtransition設定*/ .photo { position: absolute; left: 0; top: 0; } .photo img { width:100%; opacity: 0; -webkit-transition: opacity 1s ease; transition: opacity 1s ease; } /*チェックされたサムネイルに相当する写真だけを表示*/ #r1:checked ~ #photo1 img, #r2:checked ~ #photo2 img, #r3:checked ~ #photo3 img, #r4:checked ~ #photo4 img, #r5:checked ~ #photo5 img { opacity: 1; }
CSSのポイント説明
・#stageに、max-width を、拡大写真とサムネイルは、%指定のwidthを指定
・heightは全て無記述