溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么JavaScript中使用Velocity.js動(dòng)畫(huà)庫(kù)

發(fā)布時(shí)間:2021-03-29 16:04:22 來(lái)源:億速云 閱讀:158 作者:Leah 欄目:web開(kāi)發(fā)

這篇文章給大家介紹怎么JavaScript中使用Velocity.js動(dòng)畫(huà)庫(kù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

JS動(dòng)畫(huà)的優(yōu)點(diǎn)

既然我們大概了解了這兩類(lèi)動(dòng)畫(huà),那么我們來(lái)分析下他們不同的優(yōu)點(diǎn)

  1. css動(dòng)畫(huà) 由于css3可以根據(jù)css屬性自定義動(dòng)畫(huà) 所以這類(lèi)動(dòng)畫(huà)的優(yōu)點(diǎn)就是不用進(jìn)行計(jì)算和更改dom 會(huì)顯得非常流暢。

  2. JS動(dòng)畫(huà) js動(dòng)畫(huà)擁有強(qiáng)大的性能,并且優(yōu)于css動(dòng)畫(huà)的特點(diǎn)就是 既然是根據(jù)js來(lái)改變屬性值 所以沒(méi)有css那樣的局限性,可以實(shí)現(xiàn)更多的功能和動(dòng)效,或許有人說(shuō)js動(dòng)畫(huà)某些庫(kù)會(huì)很慢,其實(shí)js動(dòng)畫(huà)本質(zhì)很快,只是jquery讓它慢了下來(lái)。因?yàn)橛袝r(shí)候由于配合jquery使用,所以由于jquery本身的一些功能,所以在實(shí)現(xiàn)的時(shí)候就會(huì)顯得很慢。

velocity.js 使用方法

JS動(dòng)畫(huà)的庫(kù)非常多,各有各的有點(diǎn),比如jquery自帶的animate動(dòng)畫(huà)還有 webGL,或者利用canvas,SVG等實(shí)現(xiàn)其他效果,本次來(lái)講的就是眾多庫(kù)中的其中一個(gè) velocity.js 動(dòng)畫(huà)庫(kù)。

velocity.js 既可以單獨(dú)用JavaScript使用,也可以配合jquery使用,使用方法(注意先將velocity.js下載好后在body標(biāo)簽下引入,然后在新script標(biāo)簽中書(shū)寫(xiě)以下代碼) :

//jquery方法 
var $div = $('div')
$div.velocity({屬性:值,屬性:值})
//javascript 方法
var oDiv = document.getElementById('div')
oDiv.velocity({屬性:值,屬性:值})

這里需要注意得幾點(diǎn):

1.里面的屬性不能加引號(hào)寫(xiě)入,而后面的值如果有字符串則加引號(hào),如果為整數(shù)則不用 比如 width:100 和 width:"100px"
2.里面的屬性值不可一次傳入多個(gè),比如在css中 padding:5px 5px 6px 5px;我們可以這樣傳入 但是在velocity中如果想傳入多個(gè)值則為 {paddingLeft:5, paddingRirght:5 省略}
3.里面的屬性值 如果是多個(gè)轉(zhuǎn)折的需要第二個(gè)首字母大寫(xiě) 如上

velocity.js 詳細(xì)介紹

上面已經(jīng)講到 需要改變的值作為對(duì)象傳入velocity的第一個(gè)參數(shù),那么第二個(gè)參數(shù)就是 它的指定動(dòng)畫(huà)選項(xiàng)包含:

+ duration 持續(xù)時(shí)間
+ easing 緩動(dòng)方式
+ delay 延遲執(zhí)行
+ loop 循環(huán)次數(shù)
+ begin 和 complete 回調(diào)函數(shù)
+ display(值與css相同,可設(shè)置為auto)

在講velocity指定動(dòng)畫(huà)選項(xiàng)前 我們先說(shuō)一下velocity支持的值: px em rem % vm vh 或者 利用運(yùn)算符 *=2 表示當(dāng)前值的2倍 或者 /=2 等運(yùn)算方式

下面一個(gè)一個(gè)分析下指定動(dòng)畫(huà)選項(xiàng):

duration 持續(xù)時(shí)間

這個(gè)是代表動(dòng)畫(huà)的持續(xù)時(shí)間默認(rèn)值為毫秒(ms) 你可以這樣使用:

// 表示一秒內(nèi)將透明度從1到0
$div.velocity({opacity:0},{duration:1000})

也可以這樣使用:

// 效果相同
$div.velocity({opacity:0},1000)

velocity也自定了三種持續(xù)方式:slow(600ms) ,normal(400ms),fast(200ms),可根據(jù)自己實(shí)際需求使用

easing 緩動(dòng)方式

這個(gè)是代表著動(dòng)畫(huà)以何種方式進(jìn)行變換:ease-in-out(逐加逐減),ease-in (先加速后勻速),dase-out (先勻速后減速)

也可以根據(jù) 三角函數(shù)緩動(dòng) "easeInOutSine" ,css貝塞爾曲線(xiàn)[0.17,0.67,0.83,0.67] 或者彈簧物理 [張力,摩擦力] 等值進(jìn)行實(shí)現(xiàn)

delay 延遲執(zhí)行

表示這個(gè)動(dòng)畫(huà)延遲多少時(shí)間執(zhí)行 默認(rèn)單位毫秒(ms)

// 五秒后執(zhí)行此動(dòng)畫(huà)
delay:5000

loop 循環(huán)次數(shù)

表示這個(gè)動(dòng)畫(huà)需要的循環(huán)次數(shù):

// 循環(huán)五次
loop:5
// 無(wú)限循環(huán)
loop:true

begin和complete回調(diào)函數(shù)

這兩個(gè)表示在動(dòng)畫(huà)開(kāi)始前和動(dòng)畫(huà)結(jié)束后所執(zhí)行的函數(shù):

begin:function(){ somgthing... },complete:function(){ somgthing... }

其他功能:

velocity還有一些其他功能,這里就日后再說(shuō),比如:reverse(反轉(zhuǎn)),scrolling(滾動(dòng)),color(顏色),transform(變換 包含scale縮放 rotate旋轉(zhuǎn) translation平移等)

關(guān)于怎么JavaScript中使用Velocity.js動(dòng)畫(huà)庫(kù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI