Young Tecnic Person

My Little site

コンテンツ

HTMLタグについて

いろいろな経験のため、コーディングを学んでいます。

コード

今回、ハンバーガーメニューのJavaScriptコードはこのように書きました。

// ハンバーガーメニューの設定
const menuButton = document.getElementById('menuButton');

const nav = document.querySelector('nav');

menuButton.addEventListener('click', () => {
    nav.classList.toggle('active');
    menuButton.classList.toggle('active');
});

CSSはこんな感じ、

/* ハンバーガーメニューここから */
#menuButton {
    position: absolute;
    background-color: black;
    cursor: pointer;
    top: 5px;
    right: 10px;
    width: 50px;
    height: 55px;
    display: block;
    border-radius: 5px;
    z-index: 1;
}
#menuButton:hover {
    background-color: #723825;
    box-shadow: 2px 2px 3px 3px black;
}
#menuButton div {
    position: absolute;
    top: 15px;
    left: 5px;
    width: 40px;
    height: 3px;
    border-radius: 8px;
    background-color: #fff;
    color: #fff;
    transition: .4s;
}
#menuButton div:nth-of-type(1) {
    transform: translateY(-10px);
}
#menuButton div:nth-of-type(2) {
    transform:none;
    transition: .5s;
}
#menuButton div:nth-of-type(3) {
    transform: translateY(10px);
}
#menuButton div:nth-of-type(4) {
    margin-top: 18px;
    height: 20px;
    background-color: transparent;
    font-size: 15px
}
#menuButton.active div:nth-of-type(1) {
    transform: rotate(30deg);
}
#menuButton.active div:nth-of-type(2) {
    opacity: 0;
    transform: translateY(100vh);
}
#menuButton.active div:nth-of-type(3) {
    transform: rotate(-30deg)
}
/* ハンバーガーメニューここまで */

ちなみに、ブレイクポイントを786pxにして、出したり消したりしています。

@media screen and (min-width:768px) {
    #menuButton {
        display: none;
    }
}

としています。

HTMLはこうです。

<!-- ハンバーガーメニュー -->
<div id="menuButton">
    <div></div>
    <div></div>
    <div></div>
    <div>menu</div>
</div>

意外とコード書きますね。