ドロワーメニューを作ってみた2

前回に引き続き、ドロワーメニューを作ってみました。
前回と違うのは、３本線と×印を画像にしていることです。
`span`を使っていたのを、画像を使って実装してみました。

前回実装したドロワーメニューに興味があるなら、是非こちらのURLを見てください!
[ドロワーメニューを作ってみた](https://qiita.com/yu-chan/items/87efcc41d6499442ec75)


#ソース
ソースは前回のものをベースに、修正を加えています。
では、いつものようにソースを載せときますね。

```drower_practice.html
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ドロワーメニュー　練習</title>
    <link rel="stylesheet" type="text/css" href="./css/slide.css">
    <script src="https://code.jquery.com/jquery-3.2.1.js"></script>
    <script src="./js/slide.js"></script>
</head>

<body>
    <div class="drower_menu">
        <img src="./img/drower_open.png" alt="drower_open" id="drower_open" class="flag_on">
        <img src="./img/drower_close.png" alt="drower_close" id="drower_close" class="flag_off">
        <nav id="drower_menu_list">
            <ul class="close">
                <li><a href="#">メニュー1</a></li>
                <li><a href="#">メニュー2</a></li>
                <li><a href="#">メニュー3</a></li>
                <li><a href="#">メニュー4</a></li>
                <li><a href="#">メニュー5</a></li>
            </ul>
        </nav>
    </div>
</body>

</html>
```

```drower.css
.drower_menu img {
    position: fixed;
    top: 20px;
    right: 20px;
    display: inline-block;
    opacity: 1;
    transform: translateX(0);
    transition: all .5s;
}

.drower_menu img.flag_on {
    z-index: 100;
    opacity: 1;
}

.drower_menu img.flag_on:hover {
    cursor: pointer;
}

.drower_menu img.flag_off {
    z-index: 99;
    opacity: 0;
}

#drower_menu_list {
    height: 100%;
    width: 250px;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 0;
    padding-top: 100px;
    background-color: rgb(16, 69, 153, 0.8);
    transform: translateX(250px);
    transition: all .5s;
}

#drower_menu_list ul {
    list-style: none;
}

#drower_menu_list li {
    text-align: center;
    padding: 10px 0;
    list-style: none;
}

#drower_menu_list a {
    color: white;
    text-decoration: none;
}

#drower_menu_list.open {
    transform: translateX(0)
}
```

```drower.js
$(function ($) {
    
    $('#drower_open').on('click', function() {
        if($(this).hasClass('flag_on')) {
            $(this).removeClass('flag_on');
            $(this).addClass('flag_off');
            $('#drower_close').removeClass('flag_off');
            $('#drower_close').addClass('flag_on');
            $('#drower_menu_list').removeClass('close');
            $('#drower_menu_list').addClass('open');
        }
    });
    
    $('#drower_close').on('click', function() {
        if($(this).hasClass('flag_on')) {
            $(this).removeClass('flag_on');
            $(this).addClass('flag_off');
            $('#drower_open').removeClass('flag_off');
            $('#drower_open').addClass('flag_on');
            $('#drower_menu_list').removeClass('open');
            $('#drower_menu_list').addClass('close');
        }
    });

});
```

#画像
画像は自分で作ってみました。
汚いですが、もしドロワーメニューで画像を使いたい場合は、是非使ってください!

![drower_open.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262917/bc9df76b-3660-22e6-cfb6-518427106332.png)

![drower_close.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262917/6a49b3dc-5369-0b76-d38a-d05a02a4d2f4.png)


#解説
基本的にやっていることは、前回と変わらないです。
`jQuery`の`removeClass`と`addClass`、`CSS`の`transform`と`transition`を使って、メニューのスライドを実装しています。

#参考資料
[【jQuery】ドロワーメニュー　横からスライド表示するメニュー](https://tivel.jp/archives/11037)
[たった10行でできる！ドロワーメニューの作り方](https://www.narugaro.com/web/%E3%81%9F%E3%81%A3%E3%81%9F10%E8%A1%8C%E3%81%A7%E3%81%A7%E3%81%8D%E3%82%8B%EF%BC%81%E3%83%89%E3%83%AD%E3%83%AF%E3%83%BC%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9/)