Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验
本文來自:曹勝歡博客專欄。轉載請注明出處:http://blog.csdn.net/csh624366188??????????
???????? 最近一直感覺自己好忙,每天都渾渾噩噩的過著,轉眼間,好像有好長時間沒有更新笨鳥到菜鳥了。現在想想,實在罪過了。自從從北京回來就一直投入不了狀態,所以也想利用一下這個寫博客的機會來促進自己早日投入狀態吧。今天我們要講的是jQuery動畫的東西,其實一說到動畫,我相信很多人想到的應該是flash吧。其實不然,現在我們將要用jquery來改變flash的一統天下,當然,我們這里所說的動畫和flash所做的動畫還是有很大的區別的。所以也談不上他兩個產品有什么競爭關系,下面我們就先通過一個簡單的實例來看一下jquery的強大吧。
?
???????? 在很多web開發過程中,我們都會用到彈出層的情況,我們再做彈出層的時候大多數都應該用的js實現把。假設有如下需求:???
???????????????????????????????????????????????????????????????
·????????????單擊圖中的"顯示提示文字"按鈕,在按鈕的下方顯示一個彈出
·?????????????單擊任何空白區域或者彈出層,彈出層消失
?
用原始JavaScript我們也完全可以完成這個工作.?有以下幾點注意事項:
1.彈出層的位置需要動態計算.因為觸發彈出事件的對象可能出現在頁面的任何位置,比如截圖中的位置.
2.為document綁定單擊是關閉彈出層的函數,要使用多播委托,否則可能沖掉其他人在document綁定的函數.
3.為document綁定了關閉函數后,需要在顯示函數中取消事件冒泡,否則彈出層將顯示后立刻關閉
?
·????????下面我們來看一下用jquery來實現這里的彈出層是怎么實現的:
?
[html]?view plaincopy print?
????????從上邊代碼的效果我們可以看到,利用jquery除了實現了自動隱藏和彈出層,還實現了動畫彈出的效果。這樣的效果讓我這個初學jquery的小菜確實歡喜。所以說感覺很有必要專門抽出一篇來講解一下這個jquery動畫。Ok,下面我們就一起來正式看一下jquery動畫的東西
?
jQuery的動畫函數主要分為三類:
基本動畫函數:既有透明度漸變,又有滑動效果.?是最常用的動畫效果函數.
滑動動畫函數:僅使用滑動漸變效果.
淡入淡出動畫函數:僅使用透明度漸變效果.
?
這三類動畫函數效果各不相同,用法基本一致.大家可以自己嘗試.另外也許上面的三類函數效果都不是我們想要的,那么jQuery也提供了自定義動畫函數,將控制權放在我們手里讓我們自己定義動畫效果。下面我們就來一一看一下這三種動畫函數。
?
一.基本動畫函數:
1、show()
顯示隱藏匹配元素。這個就是?'show( speed, [callback] )'無動畫的版本。如果選擇的元素是可見的,這個方法將不會改變任何東西。無論這個元素是通過hide()方法隱藏的還是在CSS里設置了display:none;,這個方法都將有效。
例如:顯示所有段落,$("p").show()
2、show(speed,[callback])
以優雅的動畫顯示匹配的元素,并且在顯示完成后可選擇返回一個回調函。可根據指定的速度動態改變每個匹配元素高度、寬度和不透明度。
例如:用緩慢的動畫將隱藏的段落顯示出來,歷時600毫秒,$("p").show(600)
3、hide()
隱藏顯示元素。這個就是?'hide( speed, [callback] )'的無動畫版。如果選擇的元素是隱藏的,這個方法將不會改變任何東西。
例如:隱藏所有段落,$("p").hide()
4、hide(speed,[callback])
以優雅的動畫隱藏所有匹配的元素,并在顯示完成后可選的觸發一個回調函數。可以根據指定的速度動態地改變每個匹配元素的高度、寬度和不透明度。在jQuery 1.3中,padding和margin也會有動畫,效果更流暢。
例如:用600ms的時間將段落緩慢的隱藏,$("p").hide("slow");
5、toggle
切換元素的可見狀態。如果元素時可見的,切換為隱藏的;如果元素是隱藏的,切換為可見的。
例如:切換所有段落的可見狀態,$("p").toggle()
6、toggle(switch)
根據switch參數切花元素的可見狀態(true為可見,false為隱藏)。如果switch設為true,則調用show()方法來顯示匹配的元素,如果switch設為false則調用hide()來隱藏元素。
例如:切換所有段落的可見狀態,var flip=0;$("button").click(function(){$("p").toggle(flip++%2==0);});
7、toggle(speed,[callback])
以優雅的動畫切換所有匹配的元素,并在顯示完成后可選的觸發一個回調函數。可根據指定的速度動態的改變每個匹配元素的高度、寬度和不透明度。jquery 1.3,padding和margin也會有動畫,效果更流暢。
例如:用200ms將段落迅速切換顯示狀態,之后彈出一個對話框,$("p").toggle("fast",function(){alert("hello !");});
?
說明:speed參數可以使用三種預定速度之一的字符串("slow", "normal", or "fast")或表示動畫時長的毫秒數值(如:1000).
?
二.滑動動畫函數
基本動畫函數的效果是一個綜合了滑動和透明度漸變的函數, jQuery還單獨提供了只有滑動效果的相關函數.
?
| 名稱 | 說明 | 舉例 |
| slideDown(speed, [callback]) | 通過高度變化(向下增大)來動態地顯示所有匹配的元素,在顯示完成后可選地觸發一個回調函數。 這個動畫效果只調整元素的高度,可以使匹配的元素以“滑動”的方式顯示出來。在jQuery 1.3中,上下的padding和margin也會有動畫,效果更流暢。 | 用600毫秒緩慢的將段落滑下:????????$("p").slideDown("slow"); |
| slideUp(speed, [callback]) | 通過高度變化(向上減小)來動態地隱藏所有匹配的元素,在隱藏完成后可選地觸發一個回調函數。 | 用600毫秒緩慢的將段落滑上:????????$("p").slideUp("slow"); |
| slideToggle(speed, [callback]) | 通過高度變化來切換所有匹配元素的可見性,并在切換完成后可選地觸發一個回調函數。 | 用600毫秒緩慢的將段落滑上或滑下:????????$("p").slideToggle("slow"); |
?
說明:
slideDown就是show的滑動效果版本, slideUp就是hide的滑動效果版本, slideToggle就是toggle的滑動效果版本.
參數完全相同:
$("#divPop").slideDown(200);
$("#divPop").slideUp("fast");
$("#divPop").slideToggle("slow");
?
三.淡入淡出動畫函數
淡出淡出函數只提供透明度漸變的效果.
| 名稱 | 說明 | 舉例 |
| fadeIn( speed, [callback] ) | 通過不透明度的變化來實現所有匹配元素的淡入效果,并在動畫完成后可選地觸發一個回調函數。 這個動畫只調整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會發生變化。 | 用600毫秒緩慢的將段落淡入:????????$("p").fadeIn("slow"); |
| fadeOut( speed, [callback] ) | 通過不透明度的變化來實現所有匹配元素的淡出效果,并在動畫完成后可選地觸發一個回調函數。 | 用600毫秒緩慢的將段落淡出:????????$("p").fadeOut("slow"); |
| fadeTo(speed, opacity, [callback]) | 把所有匹配元素的不透明度以漸進方式調整到指定的不透明度,并在動畫完成后可選地觸發一個回調函數。 | 用600毫秒緩慢的將段落的透明度調整到0.66,大約2/3的可見度:????????$("p").fadeTo("slow", 0.66);$("p").fadeTo("slow", |
?
四、自定義動畫函數Custom
1、animate(params,[duration],[easing],[callback])用于創建自定義動畫的函數。這個函數的關鍵在于制定動畫形式及結果樣式屬性對象。這個對象中每個屬性都表示一個可以變化的樣式屬性(如height、top或opacity)。注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left。而每個屬性的值表示這個樣式屬性到多少是動畫結束。如果是一個數值,樣式屬性就會從當前的值漸變到指定的值。如果使用的是hide、show、toggle這樣的字符串值,則會就該屬性調用默認的動畫形式。
例如:點擊按鈕后div元素的幾個不同屬性一同變化,
2、stop([clearQueue],[gotoEnd])
停止所有在指定元素上正在運行的動畫。如果隊列中有等待執行的動畫(并且clearQueue沒有設為true),他們將被馬上執行clearQueue(Boolean):如果設置成true,則清空隊列。可以立即結束動畫。gotoEnd (Boolean):讓當前正在執行的動畫立即完成,并且重設show和hide的原始樣式,調用回調函數等。
例如:點擊Go之后開始動畫,點Stop之后會在當前位置停下來:
總結
以上是生活随笔為你收集整理的Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员从笨鸟到菜鸟之(九十)跟我
- 下一篇: 如何将eclipse设置为炫丽的全黑背景