티스토리 뷰
//requestAnimationFrame()을 이용한 보다 효율적인 코딩.
function scroll(){
let scrollTop = window.screenY || window.pageYOffset || document.documentElement.scrollTop;
document.querySelector(".srcollTop").innerText = Math.round(scrollTop);
// const img = document.querySelector("#section01 .content__item__img");
// img.style.transform = "translateY("+scrollTop/10+"px)";
document.querySelectorAll(".content__item").forEach(item =>{
//움직이는 스크롤 기준점을 현재 기준점으로 지정해준 뒤, 0.1정도를 곱해서 이미지가 움직이는 크기영역을 지정.
let offset1 = (scrollTop - item.offsetTop) * 0.1;
let offset2 = (scrollTop - item.offsetTop) * 0.15;
const target1 = item.querySelector(".content__item__img")
const target2 = item.querySelector(".content__item__desc")
const target3 = item.querySelector(".content__item__num")
// target1.style.transform = `translateY(${offset1}px)`;
// target2.style.transform = `translateY(${offset2}px)`;
// target3.style.transform = `translateY(${-offset2}px)`;
//gsap를 이용해서 더 부드럽게 움직이게.
gsap.to(target1,{duration: 0.3, translateY : offset1, ease: "power1.out"});
gsap.to(target2,{duration: 0.3, translateY : offset2, ease: "power1.out"});
})
requestAnimationFrame(scroll) //재귀함수의 예 (자기자신을 호출)
}
scroll();
이번 예제는 스크롤을 내리면 이미지에 이질감 효과를 주는 예제입니다.
움직일 영역을 CSS로 작업 후 움직이는 스크롤 기준점을 통해서 스크립트를 작업해줍니다.
움직이는 스크롤 기준점을 현재 기준점으로 지정해준 뒤, 0.1 정도를 곱해서 이미지가 움직이는 크기 영역을 지정해줍니다.
움직이는 스크립트는 gsap 플러그인을 이용해서 보다 부드럽게 작업해줍니다.
'Script Sample > Parallax Effect' 카테고리의 다른 글
패럴랙스 이펙트07 : 리빌 효과 (0) | 2022.03.10 |
---|---|
패럴랙스 이펙트06. : 텍스트 효과 (0) | 2022.03.08 |
패럴랙스 이펙트04. : 나타나기 (0) | 2022.03.08 |
패럴랙스 이펙트03. : 숨김메뉴 (0) | 2022.03.07 |
패럴랙스 이펙트 02. 사이드 메뉴 (0) | 2022.03.07 |
댓글
© 2018 webstoryboy