iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Modern Web

動起來吧!Web Motion 動態特效網頁學習日記系列 第 17

JS Library 學習筆記:嘿!有聽過 GSAP 嗎? (二)

  • 分享至 

  • xImage
  •  

gsap.to()gsap.from()gsap.fromTo()定義了基本動畫架構,除此之外,gsap也提供了動畫控制的函式,像是開始start()、暫停pause()、倒轉播放reverse()、回到開始狀態restart(),可以藉此快速建立所需的功能,增加互動性甚至是動態的豐富度。

為了讓使用更方便,通常會把動畫定義至一個變數中,之後針對這個變數套用這些函式:

let myTween = gsap.fromTo("#my-div", {opacity: 0}, {opacity: 1, duration: 3});
myTween.play();
myTween.pause();

可以把剛剛的play()pause()等函式,指定至對應按鈕上,進行相對應的功能控制;指定的方式可以有很多寫法,這邊搭配上個系列的jQuery使用:

$('#button-play').click(function(){
  myTween.play()
});
$('#button-pause').click(function(){
  myTween.pause()
});

GSAP提供的另一個kill()函式,可以達成進行中的動畫暫停,但同時會整個移除動畫效果,也就是說,若使用觸發了這個函式,是無法與pause()相同使用play()就能讓動畫繼續進行,需要另外安排將動畫定義上去才行。

另外,.seek()函式可加入數字參數,指定動畫跳至某個時間的狀態,若使用.seek(0),就能控制動畫直接跳到最初狀態,回到0秒的階段。

//定義動畫
let myTween = gsap.fromTo("#my-div", {opacity: 0}, {opacity: 1, duration: 3});
//指定播放按鈕
$('#button-play').click(function(){
  myTween.play()
});
//指定暫停按鈕
$('#button-pause').click(function(){
  myTween.pause()
});
//讓動畫暫停並移除動畫,無法再利用play()函式繼續撥放
$('#button-kill').click(function(){
  myTween.kill()
});
//讓動畫移至指定時間段,這邊定義為0秒狀態
$('#button-seek').click(function(){
  myTween.seek(0)
});

上一篇
JS Library 學習筆記:嘿!有聽過 GSAP 嗎? (一)
下一篇
JS Library 學習筆記:嘿!有聽過 GSAP 嗎? (三)
系列文
動起來吧!Web Motion 動態特效網頁學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言