画像がたくさん並んでいると、クリックして拡大するのは面倒だし、ぱっと大きい画像を表示したいことってよくありますよね。
色々な方法があるのですが、シンプルな方法がみつかりましたので、備忘録です。
jqueryを使うので読み込み忘れないようにしてください。
準備(HTMLとCSS)
メイン画像とサムネイル画像を表示します。
#mainImage の中に画像をメイン画像を設定します。
サムネイル画像は #imageList の中です。
HTML
<div id="mainImage"> <img src="sample1.jpg" /> </div> <div id="imageList"> <ul> <li><img src="sample1.jpg"></li> <li><img src="sample2.jpg"></li> <li><img src="sample3.jpg"></li> <li><img src="sample4.jpg"></li> <li><img src="sample5.jpg"></li> </ul> </div>
CSS
画像を差し替えるって所がポイントなので、メインの画像と同じサイズの画像をサムネイル画像にセットします。
どんなサイズでもいいんですが、
#imageList img { width:サムネイルの大きさ; height: サムネイルの大きさ; object-fit: cover;}
なんて感じで設定すると、比率が変わらず小さくなるので、便利かと思います。
javascript
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ // 「imageList」内の「img」をマウスオーバーした場合 $('#imageList img').hover(function(){ // マウスオーバーしている画像をメインの画像に反映 $('#mainImage img').attr('src', $(this).attr('src')); }); }); </script>
これで、サムネイル画像をマウスオーバーするとメイン画像が切り替わります。