HTML&CSS&JSでつくるサムネイルグリッド (初心者学習)

<h1>サムネイルグリッド</h1>
今回はカーソルがのっている画像を大きく表示してくれる<br>
サムネイルグリッドなるものを学習していきます。<br>
jQueryという便利なフレームワークを使っていますので、<br>
中身はそんなに複雑ではなく、コードの記述自体も多くはないです。<br>
私はまだ初心者なので、<br><br>
自分のメモ　＋　同じ初心者の方の参考に<br>
なればと思い書かせて頂きました。<br><br>

『学習の目的』<br>
　　コードを理解することです。<br>
　　コピー＆ペーストで使用するのもいいと思いますが、<br>
　　出来れば中身を理解しておきたいって感じです＾＾<br><br>
『利用難易度★☆☆☆☆』<br>
　　今回の学習内容は画像やファイル名等を変更すれば<br>
　　誰でも簡単に使用出来ます♪<br><br>
『用意するもの』<br>
　　エディタ：ATOM<br>
（エディタ自分の使いやすいものを使用してください。今回はATOMを使っています。）<br>
　　ブラウザ：chrome（ここもお任せで）<br>
　　jqueryのインストール<br><br>

それでは学習内容を書いていきます。<br>

<h2>サムネイルとは何？</h2>
><p>引用：<a href="https://ferret-plus.com/957">ferret</a></p><br>
>>サムネイルとは、多数の画像や動画など、読み込みに時間の<br>
かかる情報の概要をおおまかに把握するために作られた縮小画像のことです。<br>
一般的にはサイズ・画質が落とされた画像が採用され、<br>
該当の画像や動画を読み込むかどうかを判断するための<br>
「見本」として使われます。<br>
元々は親指の爪（thumb nail）という意味を持つ言葉で<br>
「サムネ」と略して呼ばれることもあります。<br><br>

<h2>グリッドとは何？</h2><br>
><p>引用：<a href="http://photoshopvip.net/14323">PhotoShopVip</a></p><br>
>>グリッドとはウェブレイアウトを制作するときに<br>
垂直/水平方向に分割するガイドラインのこと。<br>
これによって、整理されたコンテンツをデザインするための<br>
マージンやスペース、カラムを正確に分けることができます。<br>
グリッドはもともと雑誌や新聞などのプリントデザインに<br>
昔から利用されていますが、<br>
ウェブデザインにも応用することができます。
グリッドを使うことで新聞のようなウェブレイアウトを作る必要はなく、<br>
デザイン構築の手助けとなるツールで、デザインを制限するものではありません。<br><br>


『学習のゴール』<br>
![sample.gif](https://qiita-image-store.s3.amazonaws.com/0/142313/90a518fd-a5f1-3265-2797-8ad5d54b8a28.gif)<br><br>


#①HTML構造を作る<br>


```html:index.html

<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>Shop</title>
    <link rel="stylesheet" href="main.css">
    <script src="/assets/files/jquery.js"></script><!--jqueryを読み込む-->
    <script src="main.js"></script>
  </head>
  <body>

    <div class="images_area">

      <h1>About this shop</h1>

      <ul class="thumb">
        <li><img src="画像" alt="food_picture A"></li>
        <li><img src="/assets/files/thumb_2.png" alt="food_picture B"></li>
        <li><img src="/assets/files/thumb_3.png" alt="food_picture C"></li>
        <li><img src="/assets/files/thumb_4.png" alt="food_picture D"></li>
      </ul>

      <ul class="top">
        <li><img src="/assets/files/thumb_1.png" alt="food_picture A"></li>
        <li><img src="/assets/files/thumb_2.png" alt="food_picture B"></li>
        <li><img src="/assets/files/thumb_3.png" alt="food_picture C"></li>
        <li><img src="/assets/files/thumb_4.png" alt="food_picture D"></li>
      </ul>

    </div>

  </body>
</html>

```


#②Cssで装飾する<br>


```css:main.css

@charset "UTF-8";

body {
  background-color: #FED;
}

h1 {
  color: #630;
  font-family: serif;
  text-align: center;![sample.gif](https://qiita-image-store.s3.amazonaws.com/0/142313/8c13cc7f-8aa6-2236-ad70-e49d6785700d.gif)

}

.images_area {
  margin: 0 auto;
  overflow: hidden;/*float属性使用時、overflow属性を使用し、要素の横並べで起こりうるバグを未然に防ぐ*/
  width: 640px;
}

.thumb {
  float: left;
  list-style-type: none;/*リスト項目の点を消す場合は、list-style-typeという属性を使用し、値として「none」を指定します。*/
  margin: 0;
  overflow: hidden;
  width: 300px;
}

.thumb li {
  cursor: pointer;
  float: left;
  padding: 0;
  margin-right: 5px;
  margin-bottom: 5px;
}

.thumb li:hover {
  opacity: 0.8;
}

.thumb img {
  height: 145px;
  padding: 0;
  vertical-align: bottom;
  width: 145px;
}

.top {
  float: left;
  height: 295px;
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 295px;
}

.top img {
  height: 295px;
  width: 295px;
}

.top img:nth-child(2),/*要素指定（1番目の要素を指定する場合は"first-child"で指定する事も出来ます。） */
.top img:nth-child(3),
.top img:nth-child(4) {
  display: none;/*要素を隠す方法の一つとして、display属性があります。
                  このdisplay属性の値を「none」に指定することで要素は見えなくなります。*/
}

```


#③マウスを乗せたら画像を変える処理をjsで記述<br>

```javascript:main.js

(function($){

//下記はHTML=DOMの読み込みが終わったらfunction()の中の処理(=なにかしらの処理)を実行するという記述です。
$(document).ready(function(){

  var thumbs = $(".thumb img");//変数thumbsへCssのthumb imgクラスを代入
  var top_images = $(".top img");//変数top_imagesへCssのtop imgクラスを代入

 //「hover」の引数に渡された関数が、マウスカーソルが合わせられた時に実行する関数となります。
 // 要素を隠すには、「hide」メソッドを使用します。
 //「複数の要素内から ●番目の要素を選択」という形にするためには、「eq」メソッドを使用します。
 //ある要素内での順番を取得するには「index」メソッドを使用します。
 //イベントが起こった要素は「this」という名前で操作することができます。
 //要素を表示するには、「show」メソッドを使用します。

  thumbs.hover(function(){
    top_images.hide().eq(thumbs.index($(this))).show();
  });

});

})(jQuery);

```

以上になります。<br>
お疲れ様でした。<br><br>

引用サイト：<a href="http://codeprep.jp/ja/books/book/52">CODEPREP</a>