jQuery中animate的幾種用法與注意事項(xiàng)
一、animate語法結(jié)構(gòu)
animate(params,speed,callback)
params:一個(gè)包含樣式屬性及值的映射,比如{key1:value1,key2:value2}
speed:速度參數(shù)[可選]
callback:在動(dòng)畫完成時(shí)執(zhí)行的函數(shù)[可選]
二、自定義簡單動(dòng)畫
用一個(gè)簡單例子來說明,實(shí)現(xiàn)單擊某div在頁面上橫向飄動(dòng)的效果。
<style> #cube{ position:relative;/* 不加這句元素不能動(dòng) */ width:30px; height:30px; background:red; cursor:pointer; } </style> <body> <div> <div id="cube"></div> </div> <script> $(function(){ $("#cube").click(function(){ $(this).animate({left:"100px"},2000) }) }) </script>
為了使元素動(dòng)起來,要改變left屬性。為了能影響元素top、right、bottom、left屬性值必須聲明元素的position。
演示效果
三、累加、累減動(dòng)畫
在之前的代碼中,設(shè)置了{left:"100px"}
這個(gè)屬性作為參數(shù),如果改寫為{left:"+=25px"}
,效果如下
演示效果
四、多重動(dòng)畫
同時(shí)執(zhí)行多個(gè)動(dòng)畫
上面的例子是一個(gè)很簡單的動(dòng)畫。如果想同時(shí)執(zhí)行多個(gè)動(dòng)畫,比如在元素向右滑動(dòng)的同時(shí),放大元素高度。
代碼如下:
$(this).animate({left:"+=25px",height:"+=20px"},1000)
演示效果
五、按順序執(zhí)行多個(gè)動(dòng)畫
上例中,向右滑動(dòng)與高度變大是同時(shí)發(fā)生的,如果想讓方塊先向右滑動(dòng)再變高,只需將代碼拆分
如下:
$(this).animate({left:"+=25px"},500) .animate({height:"+=20px"},500)
像這樣的動(dòng)畫效果的執(zhí)行有先后順序,稱為“動(dòng)畫隊(duì)列”
演示效果
六、綜合示例
單擊方塊,讓他向右移動(dòng)的同時(shí)增高,不透明度從50%增加到100%,之后上下移動(dòng),加寬,完成后淡出。
$("#cube").click(function(){ $(this).animate({left:"100px",height:"100px",opacity:"1"},500) .animate({top:"40px",width:"100px"},500) .fadeOut('slow') })
為同一元素應(yīng)用多重效果時(shí)可以通過鏈?zhǔn)椒绞綄?duì)這些效果進(jìn)行排隊(duì)。
演示效果
七、動(dòng)畫回調(diào)函數(shù)
在上例中,如果想在最后一步切換css樣式(background:blue),而不是淡出,如果按照通常處理,相關(guān)代碼如下:
$("#cube").click(function(){ $(this).animate({left:"100px",height:"100px",opacity:"1"},500) .animate({top:"40px",width:"100px"},500) .css("border","5px solid blue")//改動(dòng)這行 })
然而,css()
方法被提前調(diào)用。
演示效果
引起這個(gè)問題的原因是,css()
方法不會(huì)加入到動(dòng)畫隊(duì)列中,而是立即執(zhí)行。可以使用回調(diào)函數(shù)對(duì)非動(dòng)畫方法實(shí)現(xiàn)排隊(duì)。
正確的相關(guān)代碼如下:
$("#cube").click(function(){ $(this).animate({left:"100px",height:"100px",opacity:"1"},500) .animate({top:"40px",width:"100px"},500,function(){ $(this).css("border","5px solid blue") }) })
演示效果
值得注意的是,callback適用于jquery所有的動(dòng)畫方法,比如slidDown()
,show()
等。
總結(jié)
以上就是關(guān)于jquery中animate的幾種用法和注意事項(xiàng),希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對(duì)腳本之家的支持。
- JQuery animate動(dòng)畫應(yīng)用示例
- jQuery封裝animate.css的實(shí)例
- jquery animate動(dòng)畫持續(xù)運(yùn)動(dòng)的實(shí)例
- jQuery中animate()的使用方法及解決$(”body“).animate({“scrollTop”:top})不被Firefox支持的問題
- jQuery animate()實(shí)現(xiàn)背景色漸變效果的處理方法【使用jQuery.color.js插件】
- 淺談原生JS實(shí)現(xiàn)jQuery的animate()動(dòng)畫示例
- jQuery實(shí)現(xiàn)立體式數(shù)字動(dòng)態(tài)增加(animate方法)
- jQuery使用animate實(shí)現(xiàn)ul列表項(xiàng)相互飄動(dòng)效果示例
- 利用jQuery的動(dòng)畫函數(shù)animate實(shí)現(xiàn)豌豆發(fā)射效果
- 原生js實(shí)現(xiàn)jquery函數(shù)animate()動(dòng)畫效果的簡單實(shí)例
- 詳解jQuery的animate動(dòng)畫方法及動(dòng)畫排隊(duì)問題解決
相關(guān)文章
JQuery Study Notes 學(xué)習(xí)筆記(一)
jquery是當(dāng)前比較流行的js類庫,學(xué)習(xí)它可以實(shí)現(xiàn)很多功能。2010-08-08基于jquery的Repeater實(shí)現(xiàn)代碼
本文和大家詳解如何使用javascript來實(shí)現(xiàn)一個(gè)asp.net 的Repeater控件,叫jQuery.Repeater插件。一起來看下吧。2010-07-07Javascript技巧之不要用for in語句對(duì)數(shù)組進(jìn)行遍歷
Javascript技巧-不要用for in語句對(duì)數(shù)組進(jìn)行遍歷的一些原因分析,需要的朋友可以參考下。2010-10-10Jquery 復(fù)選框取值兼容FF和IE8(測試有效)
Jquery 復(fù)選框取值的文章網(wǎng)上有很多的,不過可以同時(shí)兼容FF和IE8的確實(shí)沒有幾個(gè),下面有個(gè)不錯(cuò)的方法經(jīng)測試有效2013-10-10jQuery實(shí)現(xiàn)下拉框左右選擇的簡單實(shí)例
本篇文章主要是對(duì)jQuery實(shí)現(xiàn)下拉框左右選擇的簡單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-02-02jquery選擇器、屬性設(shè)置用法經(jīng)驗(yàn)總結(jié)
最近做項(xiàng)目用到了jquery。在做的過程中走了很多彎路,不停的搜索??偨Y(jié)出了一些jquery選擇器、屬性設(shè)置用法,供大家參考2013-09-09仿當(dāng)當(dāng)網(wǎng)淘寶網(wǎng)等主流電子商務(wù)網(wǎng)站商品分類導(dǎo)航菜單
本文實(shí)現(xiàn)了一個(gè)分類導(dǎo)航的菜單,和大多數(shù)流行的電子商務(wù)網(wǎng)站類似,詳細(xì)的實(shí)現(xiàn)可以直接查看源代碼.所有的代碼都在一個(gè)sidebar.html文件中2013-09-09jQuery實(shí)現(xiàn)移動(dòng) 和 漸變特效的點(diǎn)擊事件
這里給大家分享的是一則使用jQuery實(shí)現(xiàn)移動(dòng)和漸變特效的點(diǎn)擊事件效果,非常簡單實(shí)用,這里推薦給大家。2015-02-02