callback, eventCallback
2024. 5. 28. 15:00ㆍStudy/gsap

callback, eventCallback
`onComplete`, `onUpdate`, `onStart`, `onRepeat` 의 이벤트 콜백을 가져오거나 설정한다.
eventCallback(type:String, callback:Function, params:Array)
Parameters
Parameters | |
type: String | 이벤트 콜백 유형은 `"onComplete"`, `"onUpdate"`, `"onStart"`, `"onRepeat"` 이며, 대소문자를 구분한다. |
callback: Function | default: `null` 이벤트가 발생했을 때 호출되는 함수 |
params: Array | default: `null` 콜백 함수에 전달하기 위한 매개변수 배열 |
Returns: [Function | self]
- getter
: 첫 번째 매개변수를 제외하고 모두 생략하면 현재 값(getter)이 반환된다. - setter
: 첫 번째 매개변수보다 더 많이 정의하면 콜백(setter)이 설정되고 인스턴스 자체를 반환한다.
Syntax
애니메이션 내부에서 callback 사용하기
gsap.to(obj, {
duration: 1,
x: 100,
onComplete: myFunction,
onCompleteParams: ["param1", "param2"],
});
애니메이션 외부에서 callback 사용하기
myAnimation.eventCallback("onComplete", myFunction, ["param1", "param2"]);
애니메이션 외부에서 callback을 설정하면, 콜백 참조를 검사하거나 삭제할수 있다는 장점이 있다.
// deletes the onUpdate
myAnimation.eventCallback("onUpdate", null);
콜백은 각 이벤트 유형 `onComplete`, `onUpdate`, `onStart`, `onRepeat` 하나씩만 설정할 수 있다. 따라서 새 값을 설정하면 이전 값을 덮어쓰게 된다.
callback 종류
Tween, Stagger, timeline
callback | |
onComplete() | 애니메이션이 완료되면 호출 ※ 무한반복 상태에서는 `onComplete` callback을 받을 수 없다. onCompleteParams: Array - 콜백에 전달 할 파라미터 |
onStart() | 애니메이션이 시작될 때 호출 onStartParams: Array - 콜백에 전달 할 파라미터 |
onUpdate() | 애니메이션이 업데이트 될 때마다 호출 onUpdateParams: Array - 콜백에 전달 할 파라미터 |
onRepeat() | 애니메이션이 반복될 때마다 호출 onRepeatParams: Array - 콜백에 전달 할 파라미터 |
onReverseComplete() | 애니메이션 반전 시 애니메이션이 완료되면 호출 onReverseCompleteParams: Array - 콜백에 전달 할 파라미터 |
Timeline
callback | |
onComplete() | 애니메이션이 완료되면 호출 onCompleteParams: Array - 콜백에 전달 할 파라미터 |
onInterrupt() | 애니메이션이 중단될 때 호출 (애니메이션이 정상적으로 완료되면 호출하지 않음) onInterruptParams: Array - 콜백에 전달 할 파라미터 |
onRepeat() | 애니메이션이 반복될 때마다 호출 onRepeatParams: Array - 콜백에 전달 할 파라미터 |
onReverseComplete() | 애니메이션이 거꾸로 재생되고 다시 시작점에 도달했을 때 호출 onReverseCompleteParams: Array - 콜백에 전달 할 파라미터 |
onStart() | 애니메이션이 시작될 때 호출 onStartParams: Array - 콜백에 전달 할 파라미터 |
onUpdate() | 애니메이션이 업데이트 될 때마다 호출 onUpdateParams: Array - 콜백에 전달 할 파라미터 |
ScrollTrigger
callback | |
onEnter() | 스크롤 위치가 시작점을 지날 때 호출 인스턴스 자체를 하나의 매개변수로 받는다. onEnter ({ progress, direction, isActive }) |
onLeave() | 종료점을 지날 때 호출 인스턴스 자체를 하나의 매개변수로 받는다. onLeave ({ progress, direction, siActive }) |
onEnterBack() | 스크롤 위치가 종료점을 지나 다시 종료점으로 들어올 때 호출 인스턴스 자체를 하나의 매개변수로 받는다. onEnterBack ({ progress, direction, isActive }) |
onLeaveBack() | 스크롤 위치가 종료점을 지나 다시 들어온 후 다시 시작점을 나갈 때 호출 인스턴스 자체를 하나의 매개변수로 받는다. onLeaveBack ({ progress, direction, isActive }) |
onToggle() | onEnter, onLeave, onEnterBack, onLeaveBack 콜백들이 호출될 때마다 호출 onToggle ({ self }) |
onRefresh() | resize 이벤트 발생 시 호출. ScrollTrigger가 모든 위치 지정을 다시 계산한다. onRefresh ({ progress, direction, isActive }) |
onUpdate() | 스크롤이 되는 동안 지속적으로 호출 ※ `scrub`에 숫자를 할당한 경우 스크롤 위치가 멈춘 후에도 관련 애니메이션이 잠시동안 스크러빙 된다는 점 유의 onUpdate ( self ) |
onScrubComplete() | 스크럽이벤트가 완료되었을 때 호출 onScrubComplete ({ progress, direction, isActive }) |
onSnapComplete() | 스냅 이벤트가 완료되었을 때 호출 onSnapComplete ({ progress, direction, isActive }) |
Draggable
callback | |
onClick() | 요소를 클릭했다가 3px 이상 이동하지 않고 놓았을 때만 호출 onClickParams: Array - 콜백에 전달 할 파라미터 |
onDrag() | 드래그 하는 동안 호출되는 함수 onDragParams: Array - 콜백에 전달 할 파라미터 |
onDragEnd() | 드래그 후 마우스를 놓는 즉시 호출되는 함수 onDragEndParams: Array - 콜백에 전달 할 파라미터 |
onDragStart() | 요소를 클릭했다가 2픽셀 이상 이동하면 즉시 호출 onDragStartParams: Array - 콜백에 전달 할 파라미터 |
onLockAxis() | 움직임이 수평 또는 수직 축에 고정되자마자 호출하는 함수 |
onMove() | 드래그 하는 동안 마우스가 움직일 때마다 호출되는 함수 |
onPress() | 요소를 누르는 즉시 호출되는 함수 onPressParams: Array - 콜백에 전달 할 파라미터 |
onPressInit() | 시작 값이 기록되기 전에 호출되는 함수 |
onRelease() | 드래그 여부와 관계없이 요소를 누른 후 마우스를 놓는 즉시 호출 onReleaseParams: Array - 콜백에 전달 할 파라미터 |
Callback
https://gsap.com/resources/getting-started/control
Control and Callbacks | GSAP | Docs & Learning
Control Methods
gsap.com
Tween
https://gsap.com/docs/v3/GSAP/Tween/eventCallback()
eventCallback | GSAP | Docs & Learning
Returns : \[Function | self\]
gsap.com
Stagger
https://gsap.com/resources/getting-started/Staggers
Staggers | GSAP | Docs & Learning
If you haven't tried creating staggered animations in GSAP yet, you're in for a treat - Staggers are totally configurable and SUPER powerful. If a tween has multiple targets, you can easily add some delay between the start of each animation:
gsap.com
Timeline
https://gsap.com/resources/getting-started/Staggers#repeat--yoyo--callbacks
Staggers | GSAP | Docs & Learning
If you haven't tried creating staggered animations in GSAP yet, you're in for a treat - Staggers are totally configurable and SUPER powerful. If a tween has multiple targets, you can easily add some delay between the start of each animation:
gsap.com
ScrollTrigger
https://gsap.com/docs/v3/Plugins/ScrollTrigger/?page=1
ScrollTrigger | GSAP | Docs & Learning
ScrollTrigger enables anyone to create jaw-dropping scroll-based animations with minimal code. Infinitely flexible. Scrub, pin, snap, or just trigger anything scroll-related, even if it has nothing to do with animation.
gsap.com
'Study > gsap' 카테고리의 다른 글
Prevent Scroll (0) | 2024.05.29 |
---|---|
ScrollTrigger: Parallax Scroll (0) | 2024.05.29 |
ScrollTrigger.scrollerProxy() (0) | 2024.04.24 |
ScrollTrigger (0) | 2024.03.22 |
Timeline Visualizer (0) | 2024.03.22 |