聊聊JS動畫庫 Velocity.js的使用
前言
又到了炎熱的7月,很久沒有更新技術文章了,原因是上月月底實習結(jié)束,從公司離職。然后最近在弄自己的項目和考駕照,為了下次公司的應聘做準備,送別了女朋友到外地,哩哩啦啦半個月把一切事情都辦妥后,還是靜下心來學習新技術和寫一寫技術文章,希望能繼續(xù)堅持下去吧。
JS動畫
隨著互聯(lián)網(wǎng)越來越豐富多樣,網(wǎng)頁端的美化和新技術層出不窮,作為一個網(wǎng)站的瀏覽者,更多吸引他們的除了保證網(wǎng)站的流暢之外還有各種炫酷的交互動效。
網(wǎng)頁的交互動效大概分為 css動畫,js動畫 。
JS動畫的優(yōu)點
既然我們大概了解了這兩類動畫,那么我們來分析下他們不同的優(yōu)點
- css動畫 由于css3可以根據(jù)css屬性自定義動畫 所以這類動畫的優(yōu)點就是不用進行計算和更改dom 會顯得非常流暢。
- JS動畫 js動畫擁有強大的性能,并且優(yōu)于css動畫的特點就是 既然是根據(jù)js來改變屬性值 所以沒有css那樣的局限性,可以實現(xiàn)更多的功能和動效,或許有人說js動畫某些庫會很慢,其實js動畫本質(zhì)很快,只是jquery讓它慢了下來。因為有時候由于配合jquery使用,所以由于jquery本身的一些功能,所以在實現(xiàn)的時候就會顯得很慢。
velocity.js 使用方法
JS動畫的庫非常多,各有各的有點,比如jquery自帶的animate動畫還有 webGL,或者利用canvas,SVG等實現(xiàn)其他效果,本次來講的就是眾多庫中的其中一個 velocity.js 動畫庫。
velocity.js 既可以單獨用JavaScript使用,也可以配合jquery使用,使用方法(注意先將velocity.js下載好后在body標簽下引入,然后在新script標簽中書寫以下代碼) :
//jquery方法
var $div = $('div')
$div.velocity({屬性:值,屬性:值})
//javascript 方法
var oDiv = document.getElementById('div')
oDiv.velocity({屬性:值,屬性:值})
這里需要注意得幾點:
1.里面的屬性不能加引號寫入,而后面的值如果有字符串則加引號,如果為整數(shù)則不用 比如 width:100 和 width:"100px"
2.里面的屬性值不可一次傳入多個,比如在css中 padding:5px 5px 6px 5px;我們可以這樣傳入 但是在velocity中如果想傳入多個值則為 {paddingLeft:5, paddingRirght:5 省略}
3.里面的屬性值 如果是多個轉(zhuǎn)折的需要第二個首字母大寫 如上
velocity.js 詳細介紹
上面已經(jīng)講到 需要改變的值作為對象傳入velocity的第一個參數(shù),那么第二個參數(shù)就是 它的指定動畫選項包含:
+ duration 持續(xù)時間
+ easing 緩動方式
+ delay 延遲執(zhí)行
+ loop 循環(huán)次數(shù)
+ begin 和 complete 回調(diào)函數(shù)
+ display(值與css相同,可設置為auto)
在講velocity指定動畫選項前 我們先說一下velocity支持的值: px em rem % vm vh 或者 利用運算符 *=2 表示當前值的2倍 或者 /=2 等運算方式
下面一個一個分析下指定動畫選項:
duration 持續(xù)時間
這個是代表動畫的持續(xù)時間默認值為毫秒(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ù)自己實際需求使用
easing 緩動方式
這個是代表著動畫以何種方式進行變換:ease-in-out(逐加逐減),ease-in (先加速后勻速),dase-out (先勻速后減速)
也可以根據(jù) 三角函數(shù)緩動 "easeInOutSine" ,css貝塞爾曲線[0.17,0.67,0.83,0.67] 或者彈簧物理 [張力,摩擦力] 等值進行實現(xiàn)
delay 延遲執(zhí)行
表示這個動畫延遲多少時間執(zhí)行 默認單位毫秒(ms)
// 五秒后執(zhí)行此動畫 delay:5000
loop 循環(huán)次數(shù)
表示這個動畫需要的循環(huán)次數(shù):
// 循環(huán)五次 loop:5 // 無限循環(huán) loop:true
begin和complete回調(diào)函數(shù)
這兩個表示在動畫開始前和動畫結(jié)束后所執(zhí)行的函數(shù):
begin:function(){ somgthing... },complete:function(){ somgthing... }
其他功能:
velocity還有一些其他功能,這里就日后再說,比如:reverse(反轉(zhuǎn)),scrolling(滾動),color(顏色),transform(變換 包含scale縮放 rotate旋轉(zhuǎn) translation平移等)
結(jié)語
總之前端技術現(xiàn)在層出不窮,作為程序員的我們更應學習一些新的技術,既然熱愛,就永無止境,以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 詳解使用Mybatis-plus + velocity模板生成自定義的代碼
- c#基于NVelocity實現(xiàn)代碼生成
- SiteMesh如何結(jié)合Freemarker及velocity使用
- Vue中JS動畫與Velocity.js的結(jié)合使用
- 如何解決SpringBoot2.x版本對Velocity模板不支持的方案
- SpringBoot與velocity的結(jié)合的示例代碼
- springMVC+velocity實現(xiàn)仿Datatables局部刷新分頁方法
- 詳解velocity模板使javaWeb的html+js實現(xiàn)模塊化
- Mybatis velocity腳本的使用教程詳解(推薦)
- JAVA velocity模板引擎使用實例
- html文件中jquery與velocity變量中的$沖突的解決方法
- Java 如何使用Velocity引擎生成代碼
相關文章
Sample script that deletes a SQL Server database
Sample script that deletes a SQL Server database...2007-06-06

