TEST 3のコーディングです。min-widthでレスポンシブルを作成!参考にできます
jsのnavi.jsの部分
document.addEventListener("DOMContentLoaded", function () {
const openBtn = document.querySelector(".openbtn");
const gNav = document.getElementById("g-nav");
const overlay = document.getElementById("overlay");
// メニューを開く
function openMenu() {
openBtn.classList.add("active");
gNav.classList.add("panelactive");
overlay.classList.add("active");
document.documentElement.classList.add("no-scroll");
}
// メニューを閉じる
function closeMenu() {
openBtn.classList.remove("active");
gNav.classList.remove("panelactive");
overlay.classList.remove("active");
document.documentElement.classList.remove("no-scroll");
}
openBtn.addEventListener("click", function () {
if (gNav.classList.contains("panelactive")) {
closeMenu();
} else {
openMenu();
}
});
// オーバーレイクリックで閉じる
overlay.addEventListener("click", closeMenu);
// ナビゲーション内リンククリックで閉じる
const navLinks = gNav.querySelectorAll("a");
navLinks.forEach(function (link) {
link.addEventListener("click", closeMenu);
});
});jsのscroll-bar.jsの部分
const slider = document.querySelector(".product_items");
let isDown = false;
let startX;
let scrollLeft;
slider.addEventListener("mousedown", (e) => {
isDown = true;
slider.classList.add("active");
startX = e.pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
});
slider.addEventListener("mouseleave", () => {
isDown = false;
slider.classList.remove("active");
});
slider.addEventListener("mouseup", () => {
isDown = false;
slider.classList.remove("active");
});
slider.addEventListener("mousemove", (e) => {
if (!isDown) return;
e.preventDefault();
const x = e.pageX - slider.offsetLeft;
const walk = (x - startX) * 1.5; // スクロール速度調整
slider.scrollLeft = scrollLeft - walk;
});サイトは
こちらから
