自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你用jQuery做動(dòng)畫插件

開發(fā) 前端
jQuery天生就是用來做動(dòng)畫的。無論是消息框淡出淡入,菜單欄的滑動(dòng)打開,或者滾動(dòng)動(dòng)畫,甚至游戲,都可以用內(nèi)建的方法或者更豐富的插件來完成。

51CTO推薦專題:jQuery給力插件大閱兵

CSS樣式屬性動(dòng)畫

我們現(xiàn)在有很多的動(dòng)畫方法,滑動(dòng)、淡出淡入、還有其他的顯示隱藏動(dòng)畫,但是我們對(duì)于精確的控制動(dòng)畫以及動(dòng)畫到底怎么發(fā)生的還不太了解。我們這就來介紹一個(gè)非常強(qiáng)大的jQuery函數(shù),animate,這個(gè)方法可以讓你對(duì)任何的CSS屬性做動(dòng)畫的效果。我們看看代碼:

  1. $('p').animate({  
  2.      padding:'20px',  
  3.      fontSize:'30px' 
  4. },2000

這段代碼會(huì)動(dòng)畫操作所有的,將他們的邊距擴(kuò)大到20px,將字體放大到30px,并且在2秒內(nèi)完成。

animate方法中,我們需要先傳入一個(gè)對(duì)象作為參數(shù),這個(gè)對(duì)象的內(nèi)容就是你需要改變的CSS的屬性和他們的值。需要特別注意的一點(diǎn)就是,CSS屬性的名稱一定要寫成駝峰式的,也就是說要寫成backgroundColor而不是background-color這樣。

你可以傳入一個(gè)數(shù)字作為動(dòng)畫持續(xù)的時(shí)間,也可以是slow normal fast這樣的字符串。CSS屬性的值可以是px,em,百分?jǐn)?shù),或者points。比如:100px,10em,50%,16pt。

更令人激動(dòng)的是,寫入的值也是可以跟當(dāng)前值相關(guān)的,你只需要在前面寫上+=或者-=就好了,然后jQuery會(huì)自動(dòng)改寫當(dāng)前的狀態(tài)。讓我們來試試看吧:

  1. $('#navigation li').hover(function() {  
  2.   $(this).animate({paddingLeft: <em></em>}, 200);  
  3. }, function() {  
  4.   $(this).animate({paddingLeft: <em></em>}, 200);  
  5. }); 

當(dāng)鼠標(biāo)經(jīng)過的時(shí)候,就可以看見一個(gè)比較漂亮的變化了。

你也可以用很簡(jiǎn)單的寫法來控制某些屬性的顯示隱藏或者交替:

  1. $('#disclaimer').animate({  
  2.   opacity: 'hide',  
  3.   height: 'hide' 
  4. }, 'slow'); 

可以看見元素的變化。作為練習(xí),你可以嘗試改改你能想到的任何屬性。animate方法還有一些更加強(qiáng)大的功能,RockUX會(huì)在后面的文章中講到。

顏色動(dòng)畫

在你認(rèn)識(shí)了animate方法之后,你可能也想改改元素的顏色。當(dāng)然,顏色動(dòng)畫有一點(diǎn)點(diǎn)的不同,因?yàn)轭伾闹祻拈_始到結(jié)束需要一些特別的計(jì)算。不想高度寬度移動(dòng)的像素點(diǎn)那樣線性的變化,jQuery需要做一些額外的事情來進(jìn)行顏色的變化。

顏色計(jì)算的函數(shù)沒有定義在基礎(chǔ)庫(kù)中。因?yàn)楹芏鄷r(shí)候并不需要這樣的方法,而且為了保證庫(kù)的大小,也沒有加進(jìn)去。所以我們需要一個(gè)插件:Color Animations plugin.

使用插件

官方的插件庫(kù)中有很多有用的插件。你可以通過名稱類別搜索,或者社區(qū)給插件的打分來尋找。

當(dāng)你找到你感興趣的插件之后,可以下載然后放在你的項(xiàng)目中。在使用之前讀一讀readme文件或者文檔還是有必要的,但是一般是直接包含在自己的文檔中,就像包含其他的js文件一樣。

對(duì)于那些新的插件,大多都是通過文檔來找到他們的使用方法的。

在下載和放置好那個(gè)顏色函數(shù)的插件之后,你就可以動(dòng)畫變化元素的顏色屬性了:

  1. $('#disclaimer').animate({'backgroundColor':'#ff9f5f'}, 2000); 

這樣就很炫了吧。

緩動(dòng)

緩動(dòng)的意思就是在元素動(dòng)態(tài)變化的時(shí)候,有一些加速和減速的效果,從而有一種真實(shí)的體驗(yàn)的感覺。緩動(dòng)通過一些數(shù)學(xué)算法來變化動(dòng)畫的速度。因?yàn)槲覀兪褂胘Query,所以暫時(shí)不用去搞那些復(fù)雜的數(shù)學(xué)公式。

jQuery中有兩種類型的緩動(dòng),linear和swing。只要你使用jQuery做動(dòng)畫的時(shí)候,都可以使用者兩種緩動(dòng)類。他們兩個(gè)的區(qū)別我們通過下圖來表示:

jQuery

swing緩動(dòng)類從一個(gè)比較慢的速度開始,然后到結(jié)束的時(shí)候再減速,非常的優(yōu)雅。視覺上來說,swing緩動(dòng)看著比線性的linear要舒服很多,jQuery也會(huì)在你指定使用緩動(dòng)之后默認(rèn)使用swing。

舉個(gè)例子,當(dāng)我嗎點(diǎn)擊之后動(dòng)畫顯示***段落,他會(huì)變大然后縮小。我們先使用線性的讓他變大,然后使用swing來讓他縮?。?/p>

  1. $('p:first').toggle(function() {  
  2.   $(this).animate({'height':'+=150px'}, 1000, 'linear');  
  3. }, function() {  
  4.   $(this).animate({'height':'-=150px'}, 1000, 'swing');  
  5. }); 

這里面又不少jQuery的語法,我們來解釋一下:

我們通過選擇器來獲得***個(gè)段落

toggle事件綁定在***段落上

在處理函數(shù)中,this表示觸發(fā)事件的元素

***個(gè)處理函數(shù)使用了=+,表示高度增加150px,使用線性緩動(dòng)

第二個(gè)處理函數(shù)使用-=,表示減少150px,使用swing緩動(dòng)

如果這些你都搞清楚了,那么可以獎(jiǎng)勵(lì)一下自己了,真不賴。

高級(jí)緩動(dòng)類

緩動(dòng)類可以提供一些很好的視覺效果,也能勝任很多任務(wù)。在swing和linear后面還有很多的緩動(dòng)效果,可以通過這個(gè)插件easing plugin實(shí)現(xiàn)。

jQuery UI包含的插件

緩動(dòng)的庫(kù)再jQuery UI中有包含。這個(gè)庫(kù)中包含一些常見的插件,包括顏色動(dòng)畫,類的變換還有緩動(dòng)。引入jQuery UI,你就不需要再一個(gè)個(gè)的去包含每一個(gè)插件了。

只需要下載這個(gè)庫(kù),然后放在你的jQuery文件包含代碼之后就可以了。除了一些新的功能之外,緩動(dòng)插件還提供了30多個(gè)緩動(dòng)類。一個(gè)個(gè)解釋這些需要耗費(fèi)大篇幅,也沒有必要,我們來看看下面的圖表就好了。

你可能注意到,有些算法都在圖形外面了,其實(shí)這也是一個(gè)效果,他最終都會(huì)回到原點(diǎn)的。

jQuery

使用這些新的算法,我們只需要在緩動(dòng)的地方給成這些名稱就好:

  1. $('p:first').animate({height: '+=300px'}, 2000, 'easeOutBounce');  
  2. $('p:first').animate({height: '-=300px'}, 2000, 'easeInOutExpo');  
  3. $('p:first').animate({height: 'hide'}, 2000, 'easeOutCirc');  
  4. $('p:first').animate({height: 'show'}, 2000, 'easeOutElastic'); 

看到這個(gè)圖,你可能想知道這些緩動(dòng)選項(xiàng)的名字從哪里來,或者哪里可以看見完整的名單。這些算法來自Robert Penner的緩動(dòng)方程,這里有詳細(xì)的描述。

***的研究這些方程的方法就是去看源代碼。

動(dòng)手吧

休息一下,然后去試試這個(gè)插件吧?;蛟S你不會(huì)使用到每一個(gè)效果,但是對(duì)每個(gè)都有些了解,還是會(huì)在需要的時(shí)候快速做出判斷的。使用這些特效,會(huì)給你的頁面增色不少,而且也是成為一個(gè)高手必備的東西。

原文鏈接:http://rockux.com/archives/jquery%E4%B8%AD%E7%9A%84%E5%8A%A8%E7%94%BB

【編輯推薦】

  1. jQuery拖動(dòng)布局實(shí)現(xiàn)排序結(jié)果同步數(shù)據(jù)庫(kù)
  2. PHP+MySQL+jQuery實(shí)現(xiàn)隨意拖動(dòng)層
  3. 在jQuery 1.5中使用deferred對(duì)象
  4. 分享10個(gè)超炫的jQuery網(wǎng)站
  5. 2011年2月份13個(gè)jQuery***插件推薦
責(zé)任編輯:陳貽新 來源: RockUX
相關(guān)推薦

2021-08-09 13:31:25

PythonExcel代碼

2022-10-19 14:30:59

2011-04-28 15:09:15

jQueryjqPlot

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數(shù)據(jù)pandas數(shù)據(jù)分析

2022-08-04 10:39:23

Jenkins集成CD

2009-04-22 09:17:19

LINQSQL基礎(chǔ)

2021-05-10 06:48:11

Python騰訊招聘

2021-01-21 09:10:29

ECharts柱狀圖大數(shù)據(jù)

2021-01-08 10:32:24

Charts折線圖數(shù)據(jù)可視化

2021-02-02 13:31:35

Pycharm系統(tǒng)技巧Python

2020-03-08 22:06:16

Python數(shù)據(jù)IP

2012-01-11 13:40:35

移動(dòng)應(yīng)用云服務(wù)

2021-12-11 20:20:19

Python算法線性

2021-08-02 23:15:20

Pandas數(shù)據(jù)采集

2021-02-26 11:54:38

MyBatis 插件接口

2017-10-27 10:29:35

人臉識(shí)別UbuntuPython

2021-06-05 23:51:21

ECharts氣泡圖散點(diǎn)圖

2021-05-17 21:30:06

Python求均值中值

2017-10-29 21:43:25

人臉識(shí)別
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)