【コピペでOK】html、css、jQueryで作るフルスクリーンナビゲーション【ハンバーガーメニュー 】

何度も実装することがあったので、コピペで使いまわせるようにメモ。

シンプルなので応用も効きやすい。

html

    <a class="menu">
        <span class="menu__line menu__line--top"></span>
        <span class="menu__line menu__line--center"></span>
        <span class="menu__line menu__line--bottom"></span>
    </a>
    <nav class="gnav">
        <div class="gnav__wrap">
            <ul class="gnav__menu">
                <li class="gnav__menu__item"><a href="">TOP</a></li>
                <li class="gnav__menu__item"><a href="">ABOUT</a></li>
                <li class="gnav__menu__item"><a href="">NEWS</a></li>
                <li class="gnav__menu__item"><a href="">CONTACT</a></li>
            </ul>
        </div><!--gnav-wrap-->
    </nav>

css

ハンバーガーメニュー部分

/*menu*/
.menu{
    height: 20px;
    position: absolute;
    right: 20px;
    top: 20px;
    width: 30px;
    z-index: 99;
}
.menu__line{
    background: #fff;
    display: block;
    height: 2px;
    position: absolute;
    transition:transform .3s;
    width: 100%;
}
.menu__line--center{
    top: 9px;
}
.menu__line--bottom{
    bottom: 0;
}
.menu__line--top.active{
    top: 8px;
    transform: rotate(45deg);
}
.menu__line--center.active{
    transform:scaleX(0);
}
.menu__line--bottom.active{
    bottom: 10px;
    transform: rotate(135deg);
}

フルスクリーンナビゲーション部分

/*gnav*/
.gnav{
    background: rgba(0,0,0,0.8);
    display: none;
    height: 100%;
    position: fixed;
    width: 100%;
    z-index: 98;
}
.gnav__wrap{
    align-items:center;
    display: flex;
    height: 100%;
    justify-content: center;
    position: absolute;
    width: 100%;
}
.gnav__menu__item{
    margin: 40px 0;
}
.gnav__menu__item a{
    color: #fff;
    font-size: 2em;
    font-weight: bold;
    padding: 40px;
    text-decoration: none;
    transition: .5s;
}
.gnav__menu__item a:hover{
    color: #666;
}

jQuery

jQueryを使えるようにする

<script src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>

メニューの開閉

<script>
  // メニューの開閉
    $('.menu').on('click',function(){
      $('.menu__line').toggleClass('active');
      $('.gnav').fadeToggle();
    });
    $('.gnav a').on('click',function(){
      $('.menu__line').toggleClass('active');
      $('.gnav').fadeToggle();
    });
  </script>

プロおすすめの関連商品

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

幼少期、絵描きになりたくて毎日絵を描く。地元の写生大会で金賞受賞。
高校生の頃からバンドを組み、作詞・作曲・編曲・映像を担当。ライブで知り合ったバンドマンとは今でも仲良し。

25歳から独学でデザイン・ウェブ制作を0から学習し、ウェブデザイナーとして中途入社。自分だけの武器を探し、デザイン、マークアップ、企画、マーケティング、SNS、広告など片っ端から勉強。
今はその知識を活かしてPdMを担当。

その傍ら数々の副業(イラスト制作、アフィリエイト、古着転売、ハンドメイド、作曲)をして、現在30代に突入。

東海在住。
運営ブログ「シュマリ」は月間3万PV。
読んだ漫画は4万冊。