1.類型:Object
gsap.utils提供了對一些非常有用的實用程序函數(shù)的訪問。注意,它們中的許多可以選擇返回函數(shù),以便可以直接插入到補間中,利用GSAP基于函數(shù)的功能。在這種情況下,它們將為每個目標調(diào)用一次,而不是對所有目標都使用相同的結(jié)束值。
2.方法集合
checkPrefix():在必要時為所提供的CSS屬性添加前綴(例如:checkPrefix("transform")——> "msTransform"當在IE9中運行時;如果根本不支持該屬性則返回null)。
clamp():鉗制一個值以適應(yīng)特定的范圍(例如:clamp(0,100, -12)——> 0)。
distribute():線性或根據(jù)對象在網(wǎng)格中的位置在對象數(shù)組中分配值,可選地應(yīng)用了easing。
getUnit():獲取字符串的單位(例如:getUnit("30px")——> "px")。
interpolate():在幾乎任何兩個值(數(shù)字,顏色,字符串,數(shù)組,復(fù)雜字符串,甚至具有多個屬性的對象)之間進行插值(例如:Interpolate ("red", "blue", 0.5)——> "rgba(128,0,128,1)")。
mapRange():將一個范圍映射到另一個范圍(例如:mapRange(-10,10,0,100,5)——> 75)。
normalize():將范圍內(nèi)的數(shù)字映射到0到1之間的進度(例如:normalize(100,200,150)—> 0.5)。
pipe():對多個函數(shù)調(diào)用進行排序,將每個函數(shù)調(diào)用的結(jié)果傳遞給下一個函數(shù)(例如:pipe(clamp(0,100), snap(5))(8)——> 10)。
random():根據(jù)參數(shù)生成隨機數(shù)(例如:random(0,100,5)—> 65)或從提供的數(shù)組中隨機選擇一個元素(例如:random(["red", "green", "blue"])—> "red")。
selector():返回一個范圍為特定元素(或React ref或Angular ElementRef)的選擇器函數(shù)。(例:選擇器(myElement))
shuffle():原地打亂數(shù)組的內(nèi)容。(例:shuffle([1、2、3、4、5))- >(4、2、1、5、3))
snap():將一個值固定到一個增量中(例如:Snap(5,13)——> 15)或數(shù)組中最接近的值(例如:Snap([0,5,10], 7)——> 5)。
splitColor():將任何顏色拆分為紅色、綠色、藍色(可選的alpha)組件?;蛘呱唷柡投群土炼?。(例如:splitColor("red")——>[255,0,0])。
toArray():將幾乎所有類似數(shù)組的對象轉(zhuǎn)換為數(shù)組,包括選擇器文本!(例如:toArray(".class")——> [element1, element2])。
unitize():包裹著另一個實用函數(shù),允許它接受一個值,單位為例如“"20px”或者“50%”,去掉單位時,傳送到包裝實用功能,然后把它加回到結(jié)果中(例如:var wrap = gsap.utils.unitize( gsap.utils.wrap(0, 100) ); wrap("150px"); --> "50px"). 或者強制指定單位 (ex: unitize( gsap.utils.mapRange(-10, 10, 0, 100), "%"); --> 返回的結(jié)果總是帶 "%")
wrap():將一個數(shù)字放入指定的范圍內(nèi),當它超過最大值時,它會自動回換行到開始位置,如果小于最小值,則自動回換行到結(jié)束位置(例如wrap(5,10,12)—> 7)?;蛘咴跀?shù)組中循環(huán),當提供的索引大于數(shù)組長度時,它會自動回換行到開始位置(例如:wrap([0,10,20], 4)—> 10)。
wrapYoyo():將一個數(shù)字放入一個指定的范圍內(nèi),當它超過最大值時,它會繞回開始位置,如果它小于最小值,它會繞回結(jié)束位置(例如wrapYoyo(5,10,12)——> 8)。或者在一個數(shù)組中循環(huán),當提供的索引大于數(shù)組長度時,它會繞回開始位置(例如:wrap([0,10,20,30], 4)——> 20)
3.應(yīng)用示例詳解參考
示例詳解