本章主要講解jQuery的動(dòng)畫特效。
show()、show(duration)、hide(duration,easing)、show(duration,complete)、show(duration,easing,function)、show(options) 顯示所有匹配元素
hide()、hide(duration)、hide(duration,easing)、hide(duration,function)、hide(duration,easing,complete)、hide(options) 隱藏所有匹配元素
toggle()、toggle(duration)、toggle(duration,easing)、toggle(duration,function)、toggle(duration,easing,function) 切換所有匹配元素顯示或隱藏
toggle(boolean) 單向切換
<div class="box"><div>123</div></div>
<button>點(diǎn)擊</button>
$('.box').show() // 立即顯示
$('.box').show(1000);
$('.box').show('fast');
$('.box').show(1000,'linear');
$('.box').show(1000,function(){
alert('顯示完畢');
});
var anim = {
duration: 1000,
easing: 'linear',
complete: function(){
alert('隱藏完畢');
}
};
$('button').on('click',function(){
$('.box').hide(anim);
});
$('.box').toggle();
$('.box').toggle(1000);
$('.box').toggle('slow');
$('.box').toggle(1000,function(){
alert('切換完畢');
});
$('.box').toggle( { duraction: 1000 } );
$('.box').toggle(true); // 等價(jià)于$('.box').show()
slideDown()、slideDown(duration,complete)、slideDown(duration,easing,complete)、sldieDown(options) 讓元素內(nèi)容自上而下逐漸顯示出來
slideUp()、slideUp(duration,complete)、slideUp(duration,easing,complete)、slideUp(options) 讓元素內(nèi)容自下而上逐漸消失
slideToggle()、slideToggle(duration,complete)、slideToggle(duration,easing,complete)、slideToggle(options) 切換元素的滑動(dòng)狀態(tài)
fadeOut()、fadeOut(duration)、fadeIn(duration,easing)、fadeOut(duration,funciton)、fadeOut(duration,easing,complete) 以淡出(增加透明度)的方式隱藏元素
fadeIn()、fadeIn(duration)、fadeIn(duration,easing)、fadeIn(duration,complete)、fadeIn(duration,easing,funciton) 以淡入(減小透明度)的方法顯示元素
fadeTo(duration,opacity)、fadeTo(duration,opacity,easing,function) 增加或減小透明度到指定大小
fadeToggle()、fadeToggle(duration)、fadeToggle(duration,easing)、fadeToggle(duration,complete)、fadeToggle(duration,easing,complete) 以改變透明度來切換元素的顯示狀態(tài)
$('.box').fadeTo(1000,0.5);
animate(properties)、animate(properties,duration)、animate(properties,duration,complete)、animate(properties,duration,easing,complete)、animate(properties,options)
$('.box').animate({
height: '200px'
},1000,'linear',funciton(){
alert('執(zhí)行完畢');
});
// 支持多個(gè)動(dòng)畫連續(xù)執(zhí)行
$('.box').animate({height: '200px'},1000).animate({marginTop:'30px'},500);
queue()、queue(function) 返回匹配元素上正在執(zhí)行的動(dòng)畫隊(duì)列,可選函數(shù)參數(shù),表示在動(dòng)畫隊(duì)列的末尾添加一個(gè)動(dòng)畫
dequeue() 從匹配元素上正在執(zhí)行的動(dòng)畫隊(duì)列中取出第一個(gè)動(dòng)畫并執(zhí)行這個(gè)動(dòng)畫
clearQueue() 清空匹配元素的隊(duì)列
stop()、stop(clearQueue)、stop(clearQueue,jumpToEnd) 停止當(dāng)前動(dòng)畫
finish() 停止當(dāng)前所有正在執(zhí)行的動(dòng)畫并清理動(dòng)畫隊(duì)列
delay(time) 在兩個(gè)動(dòng)畫之間插入一段延時(shí)。
<div class="box" style="width:100px;height:100px;background:red"></div>
var box = $(".box");
function anim(){
box.animate({
width: '+=5'
},100).animate({
height: '+=3'
},200).animate({
marginTop: '+=3'
},300,funciton(){
$('.box').queue().length; //1
});
};
anim();
stop()方法用來停止當(dāng)前動(dòng)畫,它還可傳入三個(gè)可選的布爾值參數(shù)。
stop( [ queueName ] [, clearQueue [, jumpToEnd ] ] );
第一個(gè)參數(shù)是要停止動(dòng)畫的隊(duì)列名稱(1.7版本新增,默認(rèn)為 fx ),后兩個(gè)參數(shù)的默認(rèn)值都是false,也就是說只有當(dāng)前正在播放的動(dòng)畫被從隊(duì)列中刪除,并且各個(gè)CSS屬性的值會(huì)保持為動(dòng)畫被打斷瞬間的值;
如果把第一個(gè)參數(shù)的值設(shè)置為true,就會(huì)刪除隊(duì)列中的所有其他動(dòng)畫;如果把第二個(gè)參數(shù)設(shè)置為true,那么正在播放的動(dòng)畫會(huì)瞬間抵達(dá)動(dòng)畫終點(diǎn)。
finish()方法用來停止當(dāng)前所有正在執(zhí)行的動(dòng)畫并清理動(dòng)畫隊(duì)列,等價(jià)于stop(true,true)
(3)delay()
delay()在兩個(gè)動(dòng)畫之間插入一段延時(shí),可傳入一個(gè)以毫秒為單位的數(shù)據(jù),表示應(yīng)該延遲的時(shí)間。
delay(duration)
6、$.fx.off和$.fx.interval
$.fx.off 可用于設(shè)置或返回是否全局性地禁用所有動(dòng)畫。
$.fx.off = true | false;
如果將該屬性設(shè)為true,將全局性地禁用所有動(dòng)畫。所有正在執(zhí)行的動(dòng)畫隊(duì)列不會(huì)受到影響。尚未執(zhí)行的任何動(dòng)畫隊(duì)列都會(huì)在執(zhí)行時(shí)立即完成,而不再帶有動(dòng)畫效果。
如果將該屬性設(shè)為false,將全局性地啟用動(dòng)畫效果。
$.fx.interval 用于設(shè)置或返回動(dòng)畫的幀速(毫秒值),也可以這樣理解,用于設(shè)置jQuery動(dòng)畫每隔多少毫秒繪制一幀圖像(觸發(fā)一次樣式更改,瀏覽器可能會(huì)重新繪制當(dāng)前頁面)。
該值越小,則動(dòng)畫的觸發(fā)次數(shù)越多,動(dòng)畫效果也更明顯、更平滑,當(dāng)然也就越耗費(fèi)性能。
更改該屬性值時(shí),正在執(zhí)行的動(dòng)畫隊(duì)列將不受影響。尚未執(zhí)行的任何動(dòng)畫隊(duì)列都將按照更改后的幀速來繪制動(dòng)畫效果。
更多建議: