0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

Webサイトでよく見る3本線の入ったメニューについて調べてみました。
ドロワーメニュー(もしくはハンバーガーメニュー)と呼ばれていることを知った。
今回はそれを実装してみた。

#ソース
では、いつものようにソースを載せます。

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/hamberger_menu.css">
    <script src="https://code.jquery.com/jquery-3.2.1.js"></script>
    <script src="./js/hamberger_menu.js"></script>
</head>

<body>
    <div class="hamberger_menu">
        <!-- 三本線 -->
        <div class="hamberger_line">
            <span></span>
            <span></span>
            <span></span>
        </div>

        <!-- クリックしたときのメニュー -->
        <nav class="hamberger_list">
            <ul>
                <li><a href="#">ドロワー1</a></li>
                <li><a href="#">ドロワー2</a></li>
                <li><a href="#">ドロワー3</a></li>
            </ul>
        </nav>
    </div>
</body>

</html>
hamberger_menu.css
.hamberger_line {
    display: inline-block;
    width: 36px;
    height: 28px;
    vertical-align: middle;
    cursor: pointer;
    position: fixed;
    top: 30px;
    right: 30px;
    z-index: 100;
    transform: translateX(0);
    transition: transform .5s;
}

.hamberger_line span {
    display: inline-block;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #000;
    transition: all .5s;
}

.hamberger_line span:nth-of-type(1) {
    top: 0;
}

.hamberger_line.open span:nth-of-type(1) {
    transform: translateY(12px) rotate(-45deg);
}

.hamberger_line span:nth-of-type(2) {
    top: 12px;
}

.hamberger_line.open span:nth-of-type(2) {
    opacity: 0;
}

.hamberger_line span:nth-of-type(3) {
    bottom: 0;
}

.hamberger_line.open span:nth-of-type(3) {
    transform: translateY(-12px) rotate(45deg);
}

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

.hamberger_list.open {
    transform: translateX(0);
}

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

.hamberger_list a {
    color: #fff;
    text-decoration: none;
}
hamberger_menu.js
$(function () {
    // クリック時の動作
    $('.hamberger_line').on('click', function() {
        // メニューを閉じる
        if($(this).hasClass('open')) {
            $(this).removeClass('open');
            $('.hamberger_list').removeClass('open');
        // メニューを開く
        } else {
            $(this).addClass('open');
            $('.hamberger_list').addClass('open');
        }
    });
});

#解説
ドロワーメニューをクリックしたときの開閉は、jQueryremoveClassaddClassを使って実装している。
これを使うことで、HTMLのタグを操作している。

#参考資料
【jQuery】ドロワーメニュー 横からスライド表示するメニュー

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?