一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

系列文章導(dǎo)航:

從零開始學(xué)習(xí)jQuery (一) 開天辟地入門篇

從零開始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

從零開始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

從零開始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

從零開始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

從零開始學(xué)習(xí)jQuery (六) AJAX快餐

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

從零開始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

從零開始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

從零開始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件


一.摘要

本系列文章將帶您進(jìn)入jQuery的精彩世界, 其中有很多作者具體的使用經(jīng)驗(yàn)和解決方案,  即使你會(huì)使用jQuery也能在閱讀中發(fā)現(xiàn)些許秘籍.

開發(fā)人員一直痛疼做動(dòng)畫. 但是有了jQuery你會(huì)瞬間成為別人(那些不知道jQuery的人)眼里的動(dòng)畫高手! 本文將介紹jQuery的動(dòng)畫相關(guān)函數(shù).原來做動(dòng)畫如此簡(jiǎn)單!

二.前言

本系列文章的實(shí)例都是針對(duì)某一個(gè)技術(shù)細(xì)節(jié)的, 因?yàn)槲覀円獙W(xué)習(xí)的是基礎(chǔ)知識(shí), 雖然總有人希望要復(fù)雜一些的應(yīng)用示例, 但是我想還是讓我們先把基礎(chǔ)打牢,  有了扎實(shí)的基礎(chǔ)憑借每個(gè)人的智慧一定能創(chuàng)造出更多更好的應(yīng)用.

就在寫這篇文章的前幾天, 還有不止一個(gè)同事在為了"彈出層"效果而犯愁. 但是以后再面對(duì)這樣的功能看過本篇文章的每一個(gè)人都可以開心的微笑了. jQuery,  make work easy !

三.從實(shí)例開始

做web程序經(jīng)常要使用彈出層, 比如單擊文字或按鈕顯示一段提示文字等.  假設(shè)有如下需求:
image

  • 單擊圖中的"顯示提示文字"按鈕, 在按鈕的下方顯示一個(gè)彈出層.
  • 單擊任何空白區(qū)域或者彈出層,彈出層消失.

用原始Javascript我們也完全可以完成這個(gè)工作.  有以下幾點(diǎn)注意事項(xiàng):

1. 彈出層的位置需要?jiǎng)討B(tài)計(jì)算. 因?yàn)橛|發(fā)彈出事件的對(duì)象可能出現(xiàn)在頁(yè)面的任何位置, 比如截圖中的位置.

2. 為document綁定單擊是關(guān)閉彈出層的函數(shù), 要使用多播委托, 否則可能沖掉其他人在document綁定的函數(shù).

3. 為document綁定了關(guān)閉函數(shù)后, 需要在顯示函數(shù)中取消事件冒泡, 否則彈出層將顯示后立刻關(guān)閉.

用jQuery, 我們可以輕松地實(shí)現(xiàn)此實(shí)例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery - Start Animation</title>

<script type="text/Javascript" src="../scripts/jquery-1.3.2-vsdoc2.js"></script>

<script type="text/Javascript">
$(document).ready(
function()
{
//動(dòng)畫速度
var speed = 500;

//綁定事件處理
$("#btnShow").click(function(event)
{
//取消事件冒泡
event.stopPropagation();
//設(shè)置彈出層位置
var offset = $(event.target).offset();
$(
"#divPop").css({ top: offset.top + $(event.target).height() + "px", left: offset.left });
//動(dòng)畫顯示
$("#divPop").show(speed);

});
//單擊空白區(qū)域隱藏彈出層
$(document).click(function(event) { $("#divPop").hide(speed) });
//單擊彈出層則自身隱藏
$("#divPop").click(function(event) { $("#divPop").hide(speed) });
});
</script>

</head>
<body>
<div>
<br /><br /><br />
<button id="btnShow">顯示提示文字</button>
</div>

<!-- 彈出層 -->
<div id="divPop" style="background-color: #f0f0f0; border: solid 1px #000000; position:
absolute; display:none;
width: 300px; height: 100px;"
>
<div style="text-align: center;">彈出層</div>
</div>
</body>
</html>

系列文章導(dǎo)航:

從零開始學(xué)習(xí)jQuery (一) 開天辟地入門篇

從零開始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

從零開始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

從零開始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

從零開始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

從零開始學(xué)習(xí)jQuery (六) AJAX快餐

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

從零開始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

從零開始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

從零開始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件


四. 基本動(dòng)畫函數(shù)

上例中使用的show()和hide()是我們使用最多的基本動(dòng)畫函數(shù). 

下面是jQuery的基本動(dòng)畫函數(shù):

基本動(dòng)畫函數(shù) Basics

名稱說明舉例
show( )

顯示隱藏的匹配元素。

這個(gè)就是 'show( speed, [callback] )' 無(wú)動(dòng)畫的版本。如果選擇的元素是可見的,這個(gè)方法將不會(huì)改變?nèi)魏螙|西。無(wú)論這個(gè)元素是通過hide()方法隱藏的還是在CSS里設(shè)置了display:none;,這個(gè)方法都將有效。

顯示所有段落:
$("p").show()
show( speed, [callback])

以優(yōu)雅的動(dòng)畫顯示所有匹配的元素,并在顯示完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。

可以根據(jù)指定的速度動(dòng)態(tài)地改變每個(gè)匹配元素的高度、寬度和不透明度。在jQuery 1.3中,padding和margin也會(huì)有動(dòng)畫,效果更流暢。

用緩慢的動(dòng)畫將隱藏的段落顯示出來,歷時(shí)600毫秒:
$("p").show(600);
hide( )

隱藏顯示的元素

這個(gè)就是 'hide( speed, [callback] )' 的無(wú)動(dòng)畫版。如果選擇的元素是隱藏的,這個(gè)方法將不會(huì)改變?nèi)魏螙|西。

隱藏所有段落:
$("p").hide()
hide( speed, [callback] )

以優(yōu)雅的動(dòng)畫隱藏所有匹配的元素,并在顯示完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。

可以根據(jù)指定的速度動(dòng)態(tài)地改變每個(gè)匹配元素的高度、寬度和不透明度。在jQuery 1.3中,padding和margin也會(huì)有動(dòng)畫,效果更流暢。

用600毫秒的時(shí)間將段落緩慢的隱藏:
$("p").hide("slow");
toggle( )

切換元素的可見狀態(tài)。

如果元素是可見的,切換為隱藏的;如果元素是隱藏的,切換為可見的。

切換所有段落的可見狀態(tài):
$("p").toggle()
toggle( switch )

根據(jù)switch參數(shù)切換元素的可見狀態(tài)(ture為可見,false為隱藏)。

如果switch設(shè)為true,則調(diào)用show()方法來顯示匹配的元素,如果switch設(shè)為false則調(diào)用hide()來隱藏元素。

切換所有段落的可見狀態(tài):
var flip = 0;
$("button").click(function () {
   $("p").toggle( flip++ % 2 == 0 );
});
toggle( speed, [callback] )

以優(yōu)雅的動(dòng)畫切換所有匹配的元素,并在顯示完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。

可以根據(jù)指定的速度動(dòng)態(tài)地改變每個(gè)匹配元素的高度、寬度和不透明度。在jQuery 1.3中,padding和margin也會(huì)有動(dòng)畫,效果更流暢。

用200毫秒將段落迅速切換顯示狀態(tài),之后彈出一個(gè)對(duì)話框:
$("p").toggle("fast",function(){
alert("Animation Done.");
});

1. 使用基本動(dòng)畫函數(shù)

基本的動(dòng)畫函數(shù)主要分為show, hide和toggle三個(gè). 都提供了無(wú)參數(shù)的版本,  表示不適用動(dòng)畫切換元素的顯示狀態(tài):

$("#divPop").show();
$(
"#divPop").hide();
$(
"#divPop").toggle();

系列文章導(dǎo)航:

從零開始學(xué)習(xí)jQuery (一) 開天辟地入門篇

從零開始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

從零開始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

從零開始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

從零開始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

從零開始學(xué)習(xí)jQuery (六) AJAX快餐

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

從零開始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

從零開始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

從零開始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件


五. 滑動(dòng)動(dòng)畫函數(shù)


基本動(dòng)畫函數(shù)的效果是一個(gè)綜合了滑動(dòng)和透明度漸變的函數(shù), jQuery還單獨(dú)提供了只有滑動(dòng)效果的相關(guān)函數(shù).

滑動(dòng)動(dòng)畫函數(shù)  Sliding

名稱說明舉例
slideDown(speed, [callback])

通過高度變化(向下增大)來動(dòng)態(tài)地顯示所有匹配的元素,在顯示完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。

這個(gè)動(dòng)畫效果只調(diào)整元素的高度,可以使匹配的元素以“滑動(dòng)”的方式顯示出來。在jQuery 1.3中,上下的padding和margin也會(huì)有動(dòng)畫,效果更流暢。

用600毫秒緩慢的將段落滑下:
$("p").slideDown("slow");
slideUp(speed, [callback])通過高度變化(向上減小)來動(dòng)態(tài)地隱藏所有匹配的元素,在隱藏完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。用600毫秒緩慢的將段落滑上:
$("p").slideUp("slow");
slideToggle(speed, [callback])通過高度變化來切換所有匹配元素的可見性,并在切換完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。用600毫秒緩慢的將段落滑上或滑下:
$("p").slideToggle("slow");

講解

slideDown就是show的滑動(dòng)效果版本, slideUp就是hide的滑動(dòng)效果版本, slideToggle就是toggle的滑動(dòng)效果版本.

參數(shù)完全相同:

$("#divPop").slideDown(200);
$(
"#divPop").slideUp("fast");
$(
"#divPop").slideToggle("slow");

系列文章導(dǎo)航:

從零開始學(xué)習(xí)jQuery (一) 開天辟地入門篇

從零開始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

從零開始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

從零開始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

從零開始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

從零開始學(xué)習(xí)jQuery (六) AJAX快餐

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

從零開始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

從零開始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

從零開始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件


六. 動(dòng)畫實(shí)驗(yàn)室

動(dòng)畫實(shí)驗(yàn)室是"jQuery實(shí)戰(zhàn)"一書中的示例, 方便我們查看上面三種動(dòng)畫的效果. 對(duì)應(yīng)源代碼的 chapter7/lab.effects.html 文件.源代碼在本文最后提供下載.實(shí)驗(yàn)室截圖如下:

image

系列文章導(dǎo)航:

從零開始學(xué)習(xí)jQuery (一) 開天辟地入門篇

從零開始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

從零開始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

從零開始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

從零開始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

從零開始學(xué)習(xí)jQuery (六) AJAX快餐

從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!

從零開始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

從零開始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

從零開始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件


七.自定義動(dòng)畫函數(shù)

上面三個(gè)漸變動(dòng)畫函數(shù)已經(jīng)基本滿足了我們?nèi)粘P枨?  但是如果我們一定要?jiǎng)?chuàng)建自己的特殊的效果, jQuery也為我們提供了相關(guān)函數(shù).

自定義動(dòng)畫函數(shù) Custom

名稱說明舉例
animate( params, [duration], [easing], [callback]  )

用于創(chuàng)建自定義動(dòng)畫的函數(shù)。

這個(gè)函數(shù)的關(guān)鍵在于指定動(dòng)畫形式及結(jié)果樣式屬性對(duì)象。這個(gè)對(duì)象中每個(gè)屬性都表示一個(gè)可以變化的樣式屬性(如“height”、“top”或“opacity”)。注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left.

而每個(gè)屬性的值表示這個(gè)樣式屬性到多少時(shí)動(dòng)畫結(jié)束。如果是一個(gè)數(shù)值,樣式屬性就會(huì)從當(dāng)前的值漸變到指定的值。如果使用的是“hide”、“show”或“toggle”這樣的字符串值,則會(huì)為該屬性調(diào)用默認(rèn)的動(dòng)畫形式。

在 jQuery 1.2 中,你可以使用 em 和 % 單位。另外,在 jQuery 1.2 中,你可以通過在屬性值前面指定 "+=" 或 "-=" 來讓元素做相對(duì)運(yùn)動(dòng)。

jQuery 1.3中,如果duration設(shè)為0則直接完成動(dòng)畫。而在以前版本中則會(huì)執(zhí)行默認(rèn)動(dòng)畫。

點(diǎn)擊按鈕后div元素的幾個(gè)不同屬性一同變化:
// 在一個(gè)動(dòng)畫中同時(shí)應(yīng)用三種類型的效果
$("#go").click(function(){
$("#block").animate({
  width: "90%",
  height: "100%",
  fontSize: "10em",
  borderWidth: 10
}, 1000 );
});
animate( params, options )

用于創(chuàng)建自定義動(dòng)畫的函數(shù)。

這個(gè)函數(shù)的關(guān)鍵在于指定動(dòng)畫形式及結(jié)果樣式屬性對(duì)象。這個(gè)對(duì)象中每個(gè)屬性都表示一個(gè)可以變化的樣式屬性(如“height”、“top”或“opacity”)。注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left.

而每個(gè)屬性的值表示這個(gè)樣式屬性到多少時(shí)動(dòng)畫結(jié)束。如果是一個(gè)數(shù)值,樣式屬性就會(huì)從當(dāng)前的值漸變到指定的值。如果使用的是“hide”、“show”或“toggle”這樣的字符串值,則會(huì)為該屬性調(diào)用默認(rèn)的動(dòng)畫形式。

在 jQuery 1.2 中,你可以使用 em 和 % 單位。另外,在 jQuery 1.2 中,你可以通過在屬性值前面指定 "+=" 或 "-=" 來讓元素做相對(duì)運(yùn)動(dòng)。

第一個(gè)按鈕按了之后展示了不在隊(duì)列中的動(dòng)畫。在div擴(kuò)展到90%的同時(shí)也在增加字體,一旦字體改變完畢后,邊框的動(dòng)畫才開始:

$("#go1").click(function(){$("#block1").animate( { width: "90%"}, { queue: false, duration: 5000 }) .animate( { fontSize: '10em' } , 1000 ) .animate( { borderWidth: 5 },1000); }); $("#go2").click(function(){ $("#block2").animate( { width:"90%"}, 1000 ) .animate( { fontSize: '10em' } , 1000 ) .animate( {borderWidth: 5 }, 1000); });
stop( [clearQueue], [gotoEnd] )

停止所有在指定元素上正在運(yùn)行的動(dòng)畫。

如果隊(duì)列中有等待執(zhí)行的動(dòng)畫(并且clearQueue沒有設(shè)為true),他們將被馬上執(zhí)行


clearQueue(Boolean):如果設(shè)置成true,則清空隊(duì)列。可以立即結(jié)束動(dòng)畫。

gotoEnd (Boolean):讓當(dāng)前正在執(zhí)行的動(dòng)畫立即完成,并且重設(shè)show和hide的原始樣式,調(diào)用回調(diào)函數(shù)等。

點(diǎn)擊Go之后開始動(dòng)畫,點(diǎn)Stop之后會(huì)在當(dāng)前位置停下來:

// 開始動(dòng)畫
$("#go").click(function(){
$(".block").animate({left: '+200px'}, 5000);
});

// 當(dāng)點(diǎn)擊按鈕后停止動(dòng)畫
$("#stop").click(function(){
$(".block").stop();
});

參數(shù)說明

1.params(可選)

類型:Options

說明:一組包含作為動(dòng)畫屬性和終值的樣式屬性和及其值的集合. 

講解:通過把元素的樣式屬性值, 從當(dāng)前值逐漸調(diào)整到params設(shè)置的值而產(chǎn)生動(dòng)畫效果.

2.duration(可選)

類型:String,Number

說明:三種預(yù)定速度之一的字符串("slow", "normal", or "fast")或表示動(dòng)畫時(shí)長(zhǎng)的毫秒數(shù)值(如:1000)

講解:動(dòng)畫效果持續(xù)的時(shí)間, 時(shí)間越長(zhǎng)則變得越慢. 如果省略則不會(huì)產(chǎn)生動(dòng)畫.

3.easing(可選)

類型:String

說明:要使用的擦除效果的名稱(需要插件支持).默認(rèn)jQuery提供"linear" 和 "swing".

講解:為了讓元素逐漸達(dá)到params設(shè)置的最終效果,  我們需要有一個(gè)函數(shù)來實(shí)現(xiàn)漸變, 這類函數(shù)就叫做easing函數(shù). 但是需要這里傳遞的只是easing函數(shù)名稱, 使用前需要先將easing函數(shù)注冊(cè)到j(luò)Query上.

4.options參數(shù)

類型:Options

說明:一組包含動(dòng)畫選項(xiàng)的值的集合。

講解:所支持的屬性如下:

  • duration:  與上面的duration參數(shù)相同
  • easing: 與上面的easing參數(shù)相同
  • complete :類型為Function, 在動(dòng)畫完成時(shí)執(zhí)行的函數(shù)
  • step: Callback
  • queue (Boolean): (默認(rèn)值: true) 設(shè)定為false將使此動(dòng)畫不進(jìn)入動(dòng)畫隊(duì)列 (jQuery 1.2中新增)

講解

自定義動(dòng)畫屬于高級(jí)應(yīng)用, 在這里我暫時(shí)無(wú)法做詳細(xì)的講解.下面通過兩個(gè)示例讓大家簡(jiǎn)單了解如何使用自定義動(dòng)畫.

Bug提示:  下面兩個(gè)示例使用vsdoc2智能提示版本的jQuery類庫(kù)在FireFox下存在透明度無(wú)法漸變的問題.  請(qǐng)使用其他版本.

自定義墜落動(dòng)畫:

這個(gè)示例讓一個(gè)圖層從屏幕最上方掉落到最下方, 并且消失.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x
html1/DTD/xhtml1-transitional.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery Animation - fadeTo </title>

<script type="text/Javascript" src="../scripts/jquery-1.3.2.js"></script>

<script type="text/Javascript">
$(document).ready(
function()
{
$(
"#divPop")
.animate(
{
"opacity": "hide",
"top": $(window).height() - $("#divPop").height() - $("#divPop").position().top
},
600,
function() { $("#divPop").hide(); }
);
});
</script>

</head>
<body>
<div id="divPop" style="background-color: #f0f0f0; border: solid 1px #000000;
width: 300px; height: 100px; position:absolute;"
>
<div style="text-align: center;">彈出層</div>
</div>
</body>
</html>

it知識(shí)庫(kù)從零開始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫-讓頁(yè)面動(dòng)起來!,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 一级毛片中文字幕 | 91丝袜美腿高跟国产极品老师 | 久精品在线观看 | 亚洲综合色一区二区三区小说 | www.呦呦| 亚洲无吗视频 | 美国毛片亚洲社区在线观看 | 91蝌蚪视频在线观看 | 色天天综合 | 亚洲美女网站 | 在线小视频国产 | 综合色天天 | 真实国产伦在线视频免费播放 | 国产欧美性综合视频性刺激 | 亚洲一区二区视频 | 黄色资源视频 | 黄色网页在线免费观看 | 中文字幕一区视频一线 | 日本亚洲精品色婷婷在线影院 | 色哟在线观看 | 亚洲综合啪啪 | 成人亚洲欧美 | 美女让男人插 | 香蕉草草久在视频在线播放 | 国产色婷婷亚洲 | 91伦理视频| 深爱五月激情网 | 91精品免费观看 | 欧美色综合图片区19p | 91精品国产91久久久久久最新 | 久久网国产 | 精品中文字幕在线 | 精品无码一区在线观看 | 色资源在线观看 | 麻豆娜娜| 国产对白91色拍高清精品 | 黄色资源视频 | 永久免费观看午夜视频在线 | 亚洲国产欧美国产第一区二区三区 | 日韩亚洲欧美日本精品va | 日本在线视频网址 |