티스토리 뷰
{
document.querySelectorAll("#parallax__dot a").forEach(el => {
el.addEventListener("click", e =>{
e.preventDefault();
// window.scroll(0, 1000)
// window.scroll({left:0, top:1000});
// window.scroll({left:0, top:1000, behavior:"smooth"});
// window.scrollTo(0, 1000)
// window.scrollTo({left:0, top:1000});
// window.scrollTo({left:0, top:1000, behavior:"smooth"});
// window.scrollBy(0, 1000)
// window.scrollBy({left:0, top:1000});
// window.scrollBy({left:0, top:1000, behavior:"smooth"});
document.querySelector(el.getAttribute("href")).scrollIntoView({behavior: "smooth"})
})
})
window.addEventListener("scroll", ()=>{ //스크롤 탑 값을 3가지 방식으로 아무거나 가져옴
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || window.scrollY
document.querySelector(".scrollTop span").innerText = Math.round(scrollTop);
// for(let i= 1; i<=9; i++){
// if(scrollTop >= document.getElementById("section"+i).offsetTop -2){//각 섹션에 offsetTop를 더함 (오차 생겨서 -2 붙힘)
// document.querySelectorAll("#parallax__dot li").forEach(li =>{ //모든parallax__dot의 li에게
// li.classList.remove("active") //active를 삭제하고
// })
// document.querySelector("#parallax__dot li:nth-child("+i+")").classList.add("active") //선택된것만 active 추가
// }
// }
//위 for문을 forEach문으로 변경
document.querySelectorAll(".content__item").forEach((element, index)=>{
if(scrollTop >= element.offsetTop -2){
document.querySelectorAll("#parallax__dot ul li").forEach(li => {
li.classList.remove("active");
});
document.querySelector("#parallax__dot ul li:nth-child("+(index+1)+")").classList.add("active")
}
})
}
'Script Sample > ParallaxEffect' 카테고리의 다른 글
Parallax Effect 06 - 스크롤링 효과 : 텍스트 효과 (0) | 2022.03.08 |
---|---|
Parallax Effect 05 - 스크롤링 효과 : 이질감 효과 (0) | 2022.03.08 |
Parallax Effect 04 - 스크롤링 효과 : 나타나기 (0) | 2022.03.08 |
Parallax Effect 03 - 스크롤링 효과 : 숨김 메뉴 (0) | 2022.03.08 |
Parallax Effect 01 - 스크롤링 효과 : 메뉴이동 (0) | 2022.03.08 |
댓글
© 2018 webstoryboy