end
와 endTrigger
의 차이를 택시 운행과 교대 근무 비유로 명확하게 설명드리겠습니다!
end
: 자기만의 운행 시간표🚖 택시기사 A: "나는 정확히 8시간만 운행한다!"
시작: 오전 9시
종료: 오후 5시 (9시 + 8시간)
↑ 자기가 정한 시간에 끝남
┌─────────────────────────────────┐
│ 오전9시 오후1시 오후5시 │
│ │━━━━━━━━━━━━━━━━│ │
│ 시작 8시간 운행 종료 │
└─────────────────────────────────┘
endTrigger
: 교대 근무자를 기다림🚖 택시기사 B: "교대 근무자가 올 때까지 운행한다!"
시작: 오전 9시
종료: ??? (교대자가 언제 올지 모름)
↑ 다른 사람의 상황에 따라 결정됨
┌─────────────────────────────────┐
│ 오전9시 오후7시 │
│ │━━━━━━━━━━━━━━━━━━━━│ │
│ 시작 교대자 도착할때까지 종료 │
└─────────────────────────────────┘
end
: 자기 기준 종료ScrollTrigger.create({
trigger: card,
start: "top top",
end: "+=100vh", // 자기 시작점에서 100vh 더
pin: true
});
마크다운 그림:
Card 스크롤 진행도:
┌─────────────────────────────────┐
│ 0vh 50vh 100vh │
│ │━━━━━━━━━━━━━━━│ │
│ 시작 Pin 진행중 종료 │
│ ↑ │
│ 자기가 정한 거리만큼 │
└─────────────────────────────────┘
endTrigger
: 다른 요소 기준 종료ScrollTrigger.create({
trigger: card1,
start: "top top",
endTrigger: card4, // card4가 나타날 때까지!
end: "top top", // card4의 상단이 화면 상단에 닿으면
pin: true
});
마크다운 그림:
전체 스크롤 진행도:
┌─────────────────────────────────────────────┐
│ Card1 Card2 Card3 Card4 │
│ │━━━━━━━━━━━━━━━━━━━━━━━━━│ │
│ 시작 종료 │
│ ↑ │
│ Card4가 나타나면 │
│ Card1 pin 해제! │
└─────────────────────────────────────────────┘
👨💼 김대리: "나는 9시-6시 고정 근무!"
┌─────────────────────────────────┐
│ 9시 12시 3시 6시 │
│ │━━━━━━━━━━━━━━━━│ │
│ 출근 퇴근 │
│ ↑ │
│ 정해진 시간에 끝 │
└─────────────────────────────────┘
// ScrollTrigger 번역
end: "+=9hours" // 9시간 후 무조건 종료
👨💼 박과장: "교대 근무자가 올 때까지 대기!"
┌─────────────────────────────────────┐
│ 9시 15시 18시 22시 │
│ │━━━━━━━━━━━━━━━━━━━━━━│ │
│ 출근 교대자 도착 퇴근 │
│ ↑ │
│ 다른 사람이 와야 │
│ 비로소 퇴근 가능 │
└─────────────────────────────────────┘
// ScrollTrigger 번역
endTrigger: nextWorker // 다음 근무자가 와야 끝
end: "top top" // 그 사람이 자리에 앉으면
end
만 사용)🎪 서커스 공연자: "내 공연은 정확히 10분!"
시간표:
┌─────────────────────────────────┐
│ 0분 5분 10분 │
│ │━━━━━━━━━━│ │
│ 시작 공연중 종료 │
│ ↑ │
│ 자기가 알아서 끝남 │
└─────────────────────────────────┘
endTrigger
사용)🎪 서커스 공연자: "다음 공연자가 준비되면 내가 끝낼게!"
시간표:
┌─────────────────────────────────────┐
│ 0분 5분 8분 15분 │
│ │━━━━━━━━━━━━━━━━│ │
│ 시작 공연중 다음공연자준비 종료 │
│ ↑ │
│ 다른 사람 준비되면 끝남 │
└─────────────────────────────────────┘
Card1의 생각:
"나는 언제까지 고정되어야 하지? 🤔
내 자신의 크기나 시간으로 정하지 말고...
Card4야, 너가 화면에 나타나면 내가 그만할게!"
┌─────────────────────────────────────────┐
│ Card1고정 시작 │
│ │━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│ │
│ 시작 Card4등장 │
│ ↑ │
│ "이제 그만!" │
└─────────────────────────────────────────┘
Card4의 생각:
"나는 화면에 나타나면 100vh만큼만 고정될거야!
다른 누구한테도 의존하지 않아!"
┌─────────────────────────────────┐
│ Card4등장 │
│ │━━━━━━━━━━━━━━━│ │
│ 시작 100vh 고정 종료 │
│ ↑ │
│ 자기 계획대로 끝남 │
└─────────────────────────────────┘
🎭 연극 "카드들의 이야기"
막1 배우 (Card1):
"나는 막4 배우가 무대에 등장할 때까지 무대에 있을게!"
┌────────────────────────────────┐
│ 막1등장 막4등장 │
│ │━━━━━━━━━━━━━━━━━━━│ │
│ 시작 다른배우보고종료 │
└────────────────────────────────┘
막4 배우 (Card4):
"나는 5분간만 무대에 있을 거야!"
┌─────────────────────────────────┐
│ 막4등장 5분후 │
│ │━━━━━━━━━━━━━│ │
│ 시작 자기계획대로종료 │
└─────────────────────────────────┘
핵심:
end
= "내가 정한 시간/거리에 끝낼게"endTrigger
= "저 사람이 오면 내가 끝낼게""위임"의 의미: 자신의 종료 타이밍을 다른 요소의 등장 시점에 맡기는 것!
이제 완벽하게 이해되시나요? 🎯