![jquery自定義動(dòng)畫animate_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-11/29/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd1.gif)
![jquery自定義動(dòng)畫animate_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-11/29/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd2.gif)
![jquery自定義動(dòng)畫animate_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-11/29/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd3.gif)
![jquery自定義動(dòng)畫animate_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-11/29/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd4.gif)
![jquery自定義動(dòng)畫animate_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-11/29/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd/0418dfe9-68b3-45a9-87d9-2d88b9e2adfd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 #box width: 100px; height: 100px; background-color: red; position:absolute; #pox width: 100px; height: 100px; background-color: green; position: absolute; top: 200px; box pox $(function () $(.button).click(function () $(#box).animate( left: 300px /要想使用left top bottom right這種方向性的屬性 先必須對(duì)#box元素設(shè)置CSS 絕
2、對(duì)定位 ) ) /自定義動(dòng)畫中,每次開始運(yùn)動(dòng)都必須是初始位置或初始狀態(tài),而有時(shí)我們想通過當(dāng)前位置或狀態(tài)下再進(jìn)行動(dòng)畫。jQuery 提供了自定義動(dòng)畫的累加、累減功能。 $(.button).click(function () $(#box).animate( left: +=50px /每點(diǎn)擊一次.button按鈕,#box元素就往左移動(dòng)50px ) ) /-同步動(dòng)畫 /一個(gè)CSS 變化就是一個(gè)動(dòng)畫效果,下面的例子中,已經(jīng)有四個(gè)CSS 變化(分別是width,height,opacity,fontSize的變化)實(shí)現(xiàn)了多重動(dòng)畫同步運(yùn)動(dòng)的效果。(所謂多重同步運(yùn)動(dòng)的效果就是,這四個(gè)css屬性的值在同
3、一時(shí)間,同時(shí)變化) $(.button).click(function () $(#box).animate( width: 300px, height: 200px, opacity:0.5, /透明度為0.5 注:透明度的值在0-1之間 fontSize:200px, /字體大小設(shè)為30px ) /第一個(gè)參數(shù):是一個(gè)對(duì)象,他是鍵值對(duì)的css ) /-列隊(duì)動(dòng)畫 /通過回調(diào)函數(shù)現(xiàn)實(shí)隊(duì)列動(dòng)畫。(效果就是:首先#box的寬度變?yōu)?00px 然后高度變?yōu)?00px,然后透明度變?yōu)?0%,字體大小變?yōu)?50px 最后彈出一個(gè)“完畢”) $(.button).click(function () $(#b
4、ox).animate( width: 300px, 1000, function() $(#box).animate(height:200px,1000,function() $(#box).animate(opacity:0.5,1000,function() $(#box).animate(fontSize:150px,1000,function()alert(完畢) ); ); ); ) /在同一個(gè)元素的基礎(chǔ)上,使用鏈?zhǔn)秸{(diào)用也可以實(shí)現(xiàn)列隊(duì)動(dòng)畫 $(.button).click(function () $(#box) .animate( width: 300px , 1000) .ani
5、mate( height: 200px , 1000) .animate( opacity: 0.5 , 1000) .animate( fontSize: 150px , 1000, function () alert(列隊(duì)動(dòng)畫執(zhí)行完畢) ); /在同一個(gè)元素的基礎(chǔ)上,通過依次順序?qū)崿F(xiàn)列隊(duì)動(dòng)畫 (如果有多個(gè)元素則不能實(shí)現(xiàn),兩個(gè)元素之間的動(dòng)畫是同步的。) $(.button).click(function () $(#box).animate( width: 300px , 1000); $(#box).animate( height: 200px , 1000); $(#box).anima
6、te( opacity: 0.5 , 1000); $(#box).animate( fontSize: 150px , 1000, function () alert(列隊(duì)動(dòng)畫執(zhí)行完畢); ) /如果有多個(gè)元素則不能實(shí)現(xiàn) 不信請(qǐng)看下面代碼 (通過執(zhí)行下面這段代碼,我們發(fā)現(xiàn)#box 與#pox這兩個(gè)元素的動(dòng)畫是同時(shí)執(zhí)行的,屬于#box的那兩段動(dòng)畫是先執(zhí)行 $(#box).animate( width: 300px , 1000)然后再執(zhí)行(#box).animate( opacity: 0.5 , 1000); 他們兩個(gè)有列隊(duì)動(dòng)畫的效果) 而屬于#pox的兩段動(dòng)畫是先執(zhí)行 $(#pox).an
7、imate( height: 200px , 1000)然后再執(zhí)行 $(#pox).animate( fontSize: 150px , 1000)他們兩個(gè)有列隊(duì)動(dòng)畫的效果。 但是 $(#box).animate( width: 300px , 1000)與$(#pox).animate( height: 200px , 1000); 同時(shí)執(zhí)行的。 $(#box).animate( opacity: 0.5 , 1000)與$(#pox).animate( fontSize: 150px , 1000)是同時(shí)執(zhí)行的。 /前面說了這么一大堆 其實(shí)就是: /#box的第一條和第三條是列隊(duì)動(dòng)畫 /#
8、pox的第二條和第四條是列隊(duì)動(dòng)畫 /#box的第一條和#pox的第二條是同步動(dòng)畫 /#box的第三條和#pox的第四條是同步動(dòng)畫 $(.button).click(function () $(#box).animate( width: 300px , 1000); $(#pox).animate( height: 200px , 1000); $(#box).animate( opacity: 0.5 , 1000); $(#pox).animate( fontSize: 150px , 1000, function () alert(列隊(duì)動(dòng)畫執(zhí)行完畢); ) /那我們現(xiàn)在的需求是:不管你有幾
9、個(gè)元素,我都要他們依次實(shí)現(xiàn)列隊(duì)動(dòng)畫效果。(測(cè)試了一下,只能用這種回調(diào)函數(shù)嵌套的方式來實(shí)現(xiàn)了) $(.button).click(function () $(#box).animate( width: 300px , 1000, function () $(#pox).animate( height: 200px , 1000, function () $(#box).animate( height: 200px, 1000, function () $(#pox).animate( fontSize: 150px , 1000, function () alert(列隊(duì)動(dòng)畫執(zhí)行完畢) ); )
10、 ) ) ) / -動(dòng)畫與非動(dòng)畫 進(jìn)行隊(duì)列 【queue()】 /我們知道動(dòng)畫可以有列隊(duì)效果。但是一個(gè)普通的css(比如改變背景顏色)如果實(shí)現(xiàn)與動(dòng)畫進(jìn)行列隊(duì)呢? $(.button).click(function () $(#box).slideUp(1000).slideDown(1000).css(background, yellow) ) /本來我們是想要實(shí)現(xiàn)隊(duì)列動(dòng)畫的,也就是先讓#box滑動(dòng)隱藏,然后再讓它滑動(dòng)顯示,最后讓它改變顏色。可是我們運(yùn)行這段呢代碼,我們看到第一時(shí)間就執(zhí)行了css(background,yellow)這段代碼。 /通過上面的代碼我們了解到 css()方法不是動(dòng)畫
11、方法,會(huì)和第一個(gè)動(dòng)畫同時(shí)執(zhí)行。也就是說非動(dòng)畫不能列隊(duì)。 /現(xiàn)在問題又來了。我現(xiàn)在想要實(shí)現(xiàn)列隊(duì)動(dòng)畫,也想非動(dòng)畫和動(dòng)畫一起列隊(duì)怎么辦呢? 其實(shí)我們可以使用回調(diào)函數(shù)實(shí)現(xiàn)的。請(qǐng)看下面的代碼 $(.button).click(function () $(#box) .slideUp(1000) .slideDown(1000, function () $(this).css(background, yellow) ) .hide(3000); ) /但如果上面這樣的話,當(dāng)列隊(duì)動(dòng)畫繁多的時(shí)候,可讀性不但下降,而原本的動(dòng)畫方法不夠清晰。所以,我們的想法是每個(gè)操作都是自己獨(dú)立的方法。那么jQuery 提供了一
12、個(gè)類似于回調(diào)函數(shù)的方法:.queue() $(.button).click(function () /三個(gè)動(dòng)畫。 $(#box) .slideUp(1000) .slideDown(1000) .queue(function () $(this).css(background, yellow);) ) /現(xiàn)在,我們想繼續(xù)在.queue()方法后面再增加一個(gè)隱藏動(dòng)畫,這時(shí)發(fā)現(xiàn)居然無法實(shí)現(xiàn)。這是.queue()特性導(dǎo)致的。有兩種方法可以解決這個(gè)問題,jQuery 的.queue()的回調(diào)函數(shù)可以傳遞一個(gè)參數(shù),這個(gè)參數(shù)是next 函數(shù),在結(jié)尾處調(diào)用這個(gè)next()方法即可再鏈?zhǔn)綀?zhí)行列隊(duì)動(dòng)畫。 /鏈?zhǔn)?/p>
13、編程實(shí)現(xiàn)隊(duì)列動(dòng)畫 $(.button).click(function () /四個(gè)動(dòng)畫 $(#box) .slideUp(1000) .slideDown(1000) .queue(function (next) /這個(gè)next是一個(gè)函數(shù) $(this).css(background, yellow); next();) .hide(1000); ); /順序編程實(shí)現(xiàn)隊(duì)列動(dòng)畫 我們看到使用順序調(diào)用的列隊(duì),逐個(gè)執(zhí)行,非常清晰 $(.button).click(function () $(#box).slideUp(1000); $(#box).slideDown(1000); $(#box).q
14、ueue(function (next) $(this).css(background, yellow); next(); ); $(#box).hide(1000); ); /因?yàn)閚ext 函數(shù)是jQuery1.4 版本以后才出現(xiàn)的,而之前我們普遍使用的是.dequeue()方法。意思為執(zhí)行下一個(gè)元素列隊(duì)中的函數(shù)。 /使用.dequeue()方法執(zhí)行下一個(gè)函數(shù)動(dòng)畫 /$(.button).click(function () / $(#box).slideUp(slow).slideDown(slow).queue(function () / $(this).css(background, o
15、range); / $(this).dequeue(); /相當(dāng)于上面的那句next() 只是這里的function()括號(hào)里不像上面那樣需要傳遞一個(gè)next函數(shù) / ).hide(1000) /); /-動(dòng)畫的清除 【clearQueue()】 /jQuery 還提供了一個(gè)清理列隊(duì)的功能方法:.clearQueue()。把它放入一個(gè)列隊(duì)的回調(diào)函 數(shù)或.queue()方法里,就可以把剩下為執(zhí)行的列隊(duì)給移除。 /清理動(dòng)畫列隊(duì) /假如我想在執(zhí)行完第二個(gè)動(dòng)畫那就就不再執(zhí)行了。那么只要在第二個(gè)動(dòng)畫的回調(diào)函數(shù)哪里添加一句$(this).clearQueue()就可以停止后面的列隊(duì)動(dòng)畫了 $(.butto
16、n).click(function () $(#box) .slideUp(1000) .slideDown(1000, function () $(this).clearQueue() ) .queue(function (next) $(this).css(background, yellow); next() ) .hide(1000); ) /那么如果獲取列隊(duì)動(dòng)畫的長(zhǎng)度呢? function getQueueCount() return $(#box).queue(fx).length; /獲取當(dāng)前列隊(duì)的長(zhǎng)度,fx 是默認(rèn)列隊(duì)的參數(shù) /用法 $(.button).click(funct
17、ion () /下面這段代碼總共有slideUp,slideDown,queue,hide這四個(gè)動(dòng)畫 $(#box) .slideUp(1000, function () alert(getQueueCount() ) /執(zhí)行到這一步的時(shí)候會(huì)打印出:4 它后面還有三個(gè)動(dòng)畫,所以下一步的時(shí)候會(huì)打印出3 .slideDown(1000, function () alert(getQueueCount() ) /執(zhí)行到這一步的時(shí)候會(huì)打印出:3 .queue(function (next) alert(getQueueCount(); $(this).css(background, yellow);
18、next() ) /執(zhí)行到這一步的時(shí)候會(huì)打印出:2 .hide(1000, function () alert(getQueueCount() ); /執(zhí)行到這一步的時(shí)候會(huì)打印出:1 ); /-動(dòng)畫的停止【stop()】 /很多時(shí)候需要停止正在運(yùn)行中的動(dòng)畫,jQuery 為此提供了一個(gè).stop()方法。它有兩個(gè)可選參數(shù):.stop(clearQueue, gotoEnd);clearQueue 傳遞一個(gè)布爾值,代表是否清空未執(zhí)行完的動(dòng)畫列隊(duì),gotoEnd 代表是否直接將正在執(zhí)行的動(dòng)畫跳轉(zhuǎn)到末狀態(tài)。 $(.button).click(function () $(#box) .animate(
19、left:1000px ,3000) ) $(.stop).click(function () $(#box).stop(); /將#box這個(gè)元素的動(dòng)畫停止掉。沒有參數(shù)的stop()方法只是單純的停止動(dòng)畫 ) /那下面再來了解下,列隊(duì)動(dòng)畫的停止 $(.button).click(function () $(#box).animate( left: 300px ,1000) .animate( bottom: 300px , 1000) .animate( width: 300px , 1000) .animate( height: 300px , 1000) ) /$(.stop).clic
20、k(function () / $(#box).stop(); / 如果用沒有參數(shù)的stop()方法去停止有列隊(duì)動(dòng)畫,那么只會(huì)停止掉第一個(gè)列隊(duì)動(dòng)畫,后面的列隊(duì)動(dòng)畫會(huì)繼續(xù)執(zhí)行。 /) /那么現(xiàn)在我想當(dāng)我點(diǎn)擊停止按鈕的時(shí)候,我就需要整個(gè)將列隊(duì)動(dòng)畫停止下來,而不是僅僅停止第一個(gè),怎么辦呢? 答案是:我們可以給stop()方法加參數(shù) /stop()方法有兩個(gè)可選參數(shù): /第一個(gè)可選參數(shù),如果為true,就代表停止并清除掉后面的隊(duì)列動(dòng)畫。即:動(dòng)畫完全停止(默認(rèn)值為false) /第二個(gè)可選參數(shù),如果為true,就代表停止并清除掉后面的隊(duì)列動(dòng)畫,并且當(dāng)前動(dòng)畫會(huì)立刻跳轉(zhuǎn)到當(dāng)前這條動(dòng)畫執(zhí)行完畢的末尾位置(默認(rèn)
21、為false) $(.stop).click(function () $(#box).stop(true, true); ) /-動(dòng)畫的延遲【delay()】 $(.button).click(function () $(#box).delay(2000) /如果delay(2000) 直接寫在$(#box)元素后面,就表示延遲2秒再執(zhí)行動(dòng)畫 .animate( left: 300px , 1000) .animate( bottom: 300px , 1000) .animate( width: 300px , 1000).delay(3000) / 寫在這里表示等animate( widt
22、h: 300px , 1000)這段代碼執(zhí)行完后,延遲3秒再執(zhí)行下面的代碼 .animate( height: 300px , 1000) ) /-獲取當(dāng)前正在執(zhí)行的動(dòng)畫 【:animated 過濾器】 $(.button).click(function () /$(#box).slideUp(1000, function abc() / $(this).slideToggle(1000, abc); /無限循環(huán)的調(diào)用自己。實(shí)現(xiàn)動(dòng)畫不停的執(zhí)行。 /) /或者用這以下這種方式也可以實(shí)現(xiàn) 動(dòng)畫不停的自執(zhí)行 $(#box).slideToggle(1000, function () $(this).slideToggle(1000, arguments.callee)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人房屋租賃的合同(2篇)
- 2025年個(gè)人房屋買賣協(xié)議參考模板(2篇)
- 2025年二手房轉(zhuǎn)讓房產(chǎn)協(xié)議范文(2篇)
- 2025年五年級(jí)上班隊(duì)工作總結(jié)(二篇)
- 2025年主要農(nóng)作物新品種展示示范協(xié)議(6篇)
- 大型機(jī)械拆卸運(yùn)輸合同
- 兒童樂園對(duì)公裝修合同
- 鐵路熱熔標(biāo)線施工方案
- 賓館改造瓦工單包合同
- 化妝品快遞配送合同范本
- 行政區(qū)域代碼表Excel
- 少兒財(cái)商教育少兒篇
- GB 1886.114-2015食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑紫膠(又名蟲膠)
- 初二上冊(cè)期末數(shù)學(xué)試卷含答案
- envi二次開發(fā)素材包-idl培訓(xùn)
- 2022年上海市初中語文課程終結(jié)性評(píng)價(jià)指南
- 西門子starter軟件簡(jiǎn)易使用手冊(cè)
- 隧道施工監(jiān)控量測(cè)方案及措施
- 桂花-作文ppt-PPT課件(共14張)
- 配電房日常檢查記錄表.docx
- 高一數(shù)學(xué)概率部分知識(shí)點(diǎn)總結(jié)及典型例題解析 新課標(biāo) 人教版 必修
評(píng)論
0/150
提交評(píng)論