ギャラリー
-サムネイルをクリックするとグループ化された画像一覧を表示する-
See the Pen 6-2-6 サムネイルをクリックするとグループ化された画像一覧を表示する by 動くWebデザインアイディア帳 (@ugokuweb) on CodePen.
「Result」内の要素をクリックして動きを確かめてね!
動きを実現する仕組み
Modaal というモーダルウィンドウを実装するJavaScript ライブラリを使い、サムネイル画像をクリックすると隠れていた複数画像を内包するエリアを出現させます。
[使用するライブラリ]
* jQuery
* Modaal(http://humaan.com/modaal/)
HTMLの書き方
- head終了タグ直前にModaalのCSSと自作のCSSの2つを読み込みます。
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/css/modaal.min.css"> <link rel="stylesheet" type="text/css" href="css/6-2-6.css"> </head>
- body内のギャラリーを表示させたい場所にHTMLを記載します。
<ul class="gallery"><!--リンク先は表示させたいエリアのid名を指定します。--> <li><a href="#gallery-1" class="gallery-list"><img src="img/01.jpg" alt=""></a></li> <li><a href="#gallery-2" class="gallery-list"><img src="img/05.jpg" alt=""></a></li> <li><a href="#gallery-3" class="gallery-list"><img src="img/09.jpg" alt=""></a></li> </ul> <section id="gallery-1" class="hide-area"><!--id 名にサムネイル画像のリンク先と同じ名前を指定します。事前に非表示にするためhide-areaというクラス名も追加します。--> <p><img src="img/01.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/02.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/03.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/04.jpg" alt=""><span class="caption">画像の説明</span></p> </section> <section id="gallery-2" class="hide-area"> <p><img src="img/05.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/06.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/07.jpg" alt=""><span class="caption">画像の説明</span></p> <p><img src="img/08.jpg" alt=""><span class="caption">画像の説明</span></p> </section>
- body 終了タグ直前に jQuery、Modaal、動きを制御する自作のJS の3 つを読み込みます。
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/js/modaal.min.js"></script> <!--自作のJS--> <script src="js/6-2-6.js"></script> </body>
自作のCSS内の書き方
/*===モーダル表示のためのcss */
.hide-area{/*モーダル表示をする場所をあらかじめ隠す*/
display: none;
}
.modaal-fullscreen .modaal-content-container{/*full画面の色設定*/
background: #333;
color: #fff;
text-align: center;
}
.modaal-fullscreen .modaal-close{/*ボタンの色、位置*/
background:none;
right:20px;
}
/*クローズボタンの×の色変更*/
.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before{
background:#666;
}
/*キャプション*/
.caption{
display: block;
padding: 10px 0;
}
/*=== サムネイル表示のためのcss */
.gallery{/*ベースになるギャラリーを横並びに*/
display: flex;
justify-content: space-between;
}
.gallery li{
width:33.333%;
padding: 0 10px;
list-style:none;
}
/*画像の横幅を100%にしてレスポンシブ化*/
img{
max-width:100%;
height:auto;
vertical-align: bottom;/*画像の下にできる余白を削除*/
}
自作のJS内の書き方
//画像をクリックしたら現れる画面の設定
$(".gallery-list").modaal({
fullscreen:'true', //フルスクリーンモードにする
before_open:function(){// モーダルが開く前に行う動作
$('html').css('overflow-y','hidden');/*縦スクロールバーを出さない*/
},
after_close:function(){// モーダルが閉じた後に行う動作
$('html').css('overflow-y','scroll');/*縦スクロールバーを出す*/
}
});
この技術を使ったサンプルサイト
バリエーション
を見る
「機能」に関わる
動き一覧
基礎から学びたい方へ
Webサイトの動きを実現する仕組みと
準備について基礎から学びたい方は
下記をまず読み、基本を理解してから
コピペしましょう
Webサイトの動きを
実現する仕組みと準備
書籍情報
紙面だからこそできるまとめ方でコードを説明し、
全体を俯瞰して調べることが出来る構成になっています。
もちろん、パーツのサンプルコードもzipでまとめてダウンロードできます。
購入をしてくださった方には特典がありますので是非チェックしてみてください!