Skip to content

Commit cc205e0

Browse files
committed
ハンバーガーメニューの調整
1 parent 4450290 commit cc205e0

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

assets/css/layout.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,3 +414,8 @@
414414
margin: 0 auto;
415415
}
416416
}
417+
418+
/* bodyにno-scrollクラスが付与されたときのスタイル */
419+
body.no-scroll {
420+
overflow: hidden;
421+
}

assets/js/layout.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,32 @@ document.addEventListener("DOMContentLoaded", () => {
4040
link.classList.add("active");
4141
}
4242
});
43+
44+
// ヘッダー挿入後にハンバーガーメニューのロジックを設定
45+
const navToggle =
46+
document.querySelector(".nav-toggle");
47+
const siteNav = document.querySelector(".site-nav");
48+
49+
if (navToggle && siteNav) {
50+
navToggle.addEventListener("click", () => {
51+
navToggle.classList.toggle("is-active");
52+
siteNav.classList.toggle("is-open");
53+
// メニューが開いているときにbodyのスクロールを無効にする
54+
document.body.classList.toggle(
55+
"no-scroll",
56+
siteNav.classList.contains("is-open"),
57+
);
58+
});
59+
60+
// メニュー内のリンクをクリックしたらメニューを閉じる
61+
siteNav.querySelectorAll("a").forEach((link) => {
62+
link.addEventListener("click", () => {
63+
navToggle.classList.remove("is-active");
64+
siteNav.classList.remove("is-open");
65+
document.body.classList.remove("no-scroll");
66+
});
67+
});
68+
}
4369
})
4470
.catch((err) => {
4571
console.error(

0 commit comments

Comments
 (0)