Tween Control
A GSAP timeline() is stored in a variable and controlled interactively: tl.play(), tl.pause(), tl.reverse(), tl.restart(). The timeline’s paused: true option prevents auto-play on creation. Buttons wire to each method, giving full playback control.
GSAP timeline()을 변수에 저장하고 인터랙티브하게 제어합니다: tl.play(), tl.pause(), tl.reverse(), tl.restart(). paused: true 옵션으로 생성 시 자동 재생을 방지합니다. 버튼들이 각 메서드에 연결되어 전체 재생 제어권을 제공합니다.
Source Code script.js
const tween = gsap.to('.box', {
x: 300,
duration: 1,
ease: 'power2.inOut',
paused: true,
});
const playBtn = document.querySelector('#play');
const pauseBtn = document.querySelector('#pause');
const reverseBtn = document.querySelector('#reverse');
const restartBtn = document.querySelector('#restart');
const fill = document.querySelector('#progressFill');
const value = document.querySelector('#progressValue');
playBtn.addEventListener('click', () => tween.play());
pauseBtn.addEventListener('click', () => tween.pause());
reverseBtn.addEventListener('click', () => tween.reverse());
restartBtn.addEventListener('click', () => tween.restart());
// Live progress indicator
gsap.ticker.add(() => {
const p = tween.progress();
fill.style.width = (p * 100) + '%';
value.textContent = p.toFixed(2);
});