本篇將會說明動畫屬性中的自訂屬性。


gsap.registerPlugin() 動畫屬性之自訂屬性

gsap.registerPlugin():主要用來註冊 GSAP 插件

gsap.registerPlugin() 主要是用來註冊 GSAP 自已的插件。

註冊 GSAP 的 Draggable plugin,以 gsap.registerPlugin(Draggable) 引用插件。

實作方式可參考:Well in Time – 練習動畫的好選擇 – 按鈕,只留下實作出來的 codepen,這裡就不在多增加篇幅長度。

gsap.registerPlugin() 方法,name 自訂屬性名稱,init(target, value) 傳入目標結點與值

先以 gsap.registerPlugin({}) 內訂出自訂效果的名稱,透過 init(target, value) {} 內的 console.log(target, value) 就可以取得使用 to() 動畫方法在使用自訂名稱的值,這裡先以 '' (空字串) 傳入,取得的結果會是使用的 #box 元素結點與值是空字串。

init(target, value) {} 之中,透過 JS 的運算子 value_1 || value_2,當前 value_1 是空字串時,此時在運算下就會把 value_2 做為預設值,這樣的方式就可以在 .to() 的方法下,透過 myCustomProperty: '' 屬性帶出預設值,傳入的值如果沒有應,就會以預設計為主,但如果有的話就會以傳入的值加上預設計傳出使用。

完整程式碼如下:

See the Pen
GSAP – registerPlugin 自訂動畫屬性
by Jimmy_Wu (@Jimmy_Wu) on CodePen.light


gsap.registerEffect() 動畫屬性之自訂屬性

另外找到以 gsap.registerEffect() 的做法,可讀性會較好。

See the Pen
GSAP – registerEffect 自訂動畫屬性
by Jimmy_Wu (@Jimmy_Wu) on CodePen.light

資料出處: