메뉴를 클릭하면 해당 섹션에 스크롤이 되게 만들어보자.
클릭하면 해당 섹션위치로 스크롤이 되야한다.
//index.html
<nav id="navbar">
<div class="navbar__logo">
<a href="#">로고</a>
</div>
<ul class="navbar__menu">
<li class="navbar__menu__items active" data-link='#home'>Home</li>
<li class="navbar__menu__items" data-link='#about'>About</li>
<li class="navbar__menu__items" data-link='#work'>My work</li>
<li class="navbar__menu__items" data-link='#testimonial'>Testimonial</li>
</ul>
</nav>
<aside>
<button class="aside__top"><i class="fa-solid fa-circle-arrow-up"></i></button>
<button class="aside__bottom"><i class="fa-solid fa-circle-arrow-down"></i></button>
</aside>
const navbarMenu = document.querySelector(".navbar__menu");
navbarMenu.addEventListener("click", (e) => {
//console.log(e.target.dataset.link);
const link = e.target.dataset.link;
if (link == null) {
return;
}
scrollIntoView(link);
});
//aside top & bottom scroll
const asideTopBtn = document.querySelector(".aside__top");
asideTopBtn.addEventListener("click", () => {
scrollIntoView("#home");
});
const asideBottomBtn = document.querySelector(".aside__bottom");
asideBottomBtn.addEventListener("click", () => {
scrollIntoView("#contact");
});
// 중복코드시 함수로 만들어서 사용
function scrollIntoView(selector) {
const scrollTo = document.querySelector(selector);
scrollTo.scrollIntoView({ behavior: "smooth" });
}