01
CODE
const hide = (item) => {
gsap.set(item, {autoAlpha: 0});
}
const animate = (item) => {
let x = 0;
let y = 0;
let delay = item.dataset.delay;
if(item.classList.contains("reveal_LTR")){
x = -100;
y = 0;
} else if(item.classList.contains("reveal_BTT")){
x = 0;
y = 100;
} else if(item.classList.contains("reveal_TTB")){
x = 0;
y = -100;
} else {
x = 100;
y = 0;
}
gsap.fromTo(item,
{autoAlpha: 0, x: x, y: y},
{autoAlpha: 1, x: 0, y: 0, delay: delay, duration: 1.25, overwrite: "auto", ease: "expo"}
);
}
gsap.utils.toArray(".reveal").forEach((item) => {
hide(item);
ScrollTrigger.create({
trigger: item,
// start: "top bottom",
// end: "bottom top",
markers: true,
onEnter: () => {animate(item)},
});
});
등장 효과를 주고싶은 요소에 클래스명 ‘reveal, reveal_LTR, reveal_BTT, reveal_TTB’를 넣어주고, 지연 시간을 추가할 때는 data-delay=”1″을 추가.
보이는 공간에 reveal 클래스가 있는 요소의 경우, 보였다가 hide가 되는 모습이 보여셔, 아예 css로 reveal 클래스에 opacity를 0으로 주고 시작하니 현상 해결.
인간의 삶을 결정하는 열쇠는 생각이다.


