一、動(dòng)畫(huà) animate()
10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有吉安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、animate()方法的簡(jiǎn)單使用
有些復(fù)雜的動(dòng)畫(huà)通過(guò)之前學(xué)到的幾個(gè)動(dòng)畫(huà)函數(shù)是不能夠?qū)崿F(xiàn),這時(shí)候就是強(qiáng)大的animate方法了。
操作一個(gè)元素執(zhí)行3秒的淡入動(dòng)畫(huà),對(duì)比下一下2組動(dòng)畫(huà)設(shè)置的區(qū)別。
$(elem).fadeOut(3000)
$(elem).animate({
opacity:0
},3000)
顯而易見(jiàn),animate方法更加靈活了,可以精確的控制樣式屬性從而執(zhí)行動(dòng)畫(huà)。
語(yǔ)法:
1?.animate(?properties?[,?duration?]?[,?easing?]?[,?complete?]?)
2?.animate(?properties,?options?)
.animate()方法允許在任意的數(shù)值的CSS屬性上創(chuàng)建動(dòng)畫(huà)。2種語(yǔ)法使用,幾乎差不多了,唯一必要的屬性就是一組CSS屬性鍵值對(duì)。這組屬性和用于設(shè)置.css()方法的屬性鍵值對(duì)類似,除了屬性范圍做了更多限制。第二個(gè)參數(shù)開(kāi)始可以單獨(dú)傳遞多個(gè)實(shí)參也可以合并成一個(gè)對(duì)象傳遞了。
參數(shù)分解:
properties:一個(gè)或多個(gè)css屬性的鍵值對(duì)所構(gòu)成的Object對(duì)象。要特別注意所有用于動(dòng)畫(huà)的屬性必須是數(shù)字的,除非另有說(shuō)明;這些屬性如果不是數(shù)字的將不能使用基本的jQuery功能。比如常見(jiàn)的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等這些都是能產(chǎn)生動(dòng)畫(huà)效果的。background-color很明顯不可以,因?yàn)閰?shù)是red或者GBG這樣的值,非常用插件,否則正常情況下是不能只能動(dòng)畫(huà)效果的。注意,CSS 樣式使用 DOM 名稱(比如 "fontSize")來(lái)設(shè)置,而非 CSS 名稱(比如 "font-size")。
特別注意單位,屬性值的單位像素(px),除非另有說(shuō)明。單位em 和 %需要指定使用
.animate({
left:?,
width:?'px'
opacity:?'show',
fontSize:?"em",
},?);
除了定義數(shù)值,每個(gè)屬性能使用'show', 'hide', 和 'toggle'。這些快捷方式允許定制隱藏和顯示動(dòng)畫(huà)用來(lái)控制元素的顯示或隱藏
.animate({
width:?"toggle"
});
如果提供一個(gè)以+= 或 -=開(kāi)始的值,那么目標(biāo)值就是以這個(gè)屬性的當(dāng)前值加上或者減去給定的數(shù)字來(lái)計(jì)算的
.animate({
left:?'+50px'
},?"slow");
duration:時(shí)間
動(dòng)畫(huà)執(zhí)行的時(shí)間,持續(xù)時(shí)間是以毫秒為單位的;值越大表示動(dòng)畫(huà)執(zhí)行的越慢,不是越快。還可以提供'fast' 和 'slow'字符串,分別表示持續(xù)時(shí)間為200 和 600毫秒。
easing動(dòng)畫(huà)運(yùn)動(dòng)的算法:
jQuery庫(kù)中是默認(rèn)的時(shí)調(diào)用 swing。在一個(gè)恒定的速度進(jìn)行動(dòng)畫(huà),如果需要其他的動(dòng)畫(huà)算法,請(qǐng)查找相關(guān)的插件
complete回調(diào)
動(dòng)畫(huà)完成時(shí)執(zhí)行的函數(shù),這個(gè)可以保證當(dāng)前動(dòng)畫(huà)確定完成后發(fā)會(huì)觸發(fā)
2、animate() 方法來(lái)依次執(zhí)行多個(gè)動(dòng)畫(huà)
animate在執(zhí)行動(dòng)畫(huà)中,如果需要觀察動(dòng)畫(huà)的一些執(zhí)行情況,或者在動(dòng)畫(huà)進(jìn)行中的某一時(shí)刻進(jìn)行一些其他處理,我們可以通過(guò)animate的提供第二種設(shè)置語(yǔ)法,傳遞一個(gè)對(duì)象參數(shù),可以拿到動(dòng)畫(huà)執(zhí)行狀態(tài)一些通知。
.animate(?properties,?options?)
options參數(shù)
duration - 設(shè)置動(dòng)畫(huà)執(zhí)行的時(shí)間
easing - 規(guī)定要使用的 easing 函數(shù),過(guò)渡使用哪種緩動(dòng)函數(shù)
step:規(guī)定每個(gè)動(dòng)畫(huà)的每一步完成之后要執(zhí)行的函數(shù)
progress:每一次動(dòng)畫(huà)調(diào)用的時(shí)候會(huì)執(zhí)行這個(gè)回調(diào),就是一個(gè)進(jìn)度的概念
complete:動(dòng)畫(huà)完成回調(diào)
如果多個(gè)元素執(zhí)行動(dòng)畫(huà),回調(diào)將在每個(gè)匹配的元素上執(zhí)行一次,不是作為整個(gè)動(dòng)畫(huà)執(zhí)行一次
列出常用的方式
$('#elem').animate({
width:?'toggle',
height:?'toggle'
},?{
duration:?,
specialEasing:?{
width:?'linear',
height:?'easeOutBounce'
},
complete:?function()?{
$(this).after('divAnimation?complete./div');
}
});
調(diào)用animate()方法可以創(chuàng)建自定義動(dòng)畫(huà)效果,它的調(diào)用格式為:
$(selector).animate({params},speed,[callback])
其中,params參數(shù)為制作動(dòng)畫(huà)效果的CSS屬性名與值,speed參數(shù)為動(dòng)畫(huà)的效果的速度,單位為毫秒,可選項(xiàng)callback參數(shù)為動(dòng)畫(huà)完成時(shí)執(zhí)行的回調(diào)函數(shù)名。
例如,調(diào)用animate()方法以由小到大的動(dòng)畫(huà)效果顯示圖片,如下圖所示:
body
h制作簡(jiǎn)單的動(dòng)畫(huà)效果/h
img?src="images/.png"?alt=""/
div?id="tip"/div
script?type="text/javascript"
$(function()?{
$('img').animate({
width:?'px';
height:'px'
},?,?function()?{
$("#tip").html('執(zhí)行完成!');
});
})
/script
/body
jQuery的動(dòng)畫(huà)函數(shù)主要分為三類:
基本動(dòng)畫(huà)函數(shù): 既有透明度漸變, 又有滑動(dòng)效果. 是最常用的動(dòng)畫(huà)效果函數(shù).
滑動(dòng)動(dòng)畫(huà)函數(shù): 僅使用滑動(dòng)漸變效果.
淡入淡出動(dòng)畫(huà)函數(shù): 僅使用透明度漸變效果.
使用animate函數(shù)。
jquery的animate函數(shù)可以實(shí)現(xiàn)大多數(shù)緩動(dòng)動(dòng)畫(huà),按照文檔傳遞參數(shù)就可以。
也可以結(jié)合使用css3,切換css的類名實(shí)現(xiàn)動(dòng)畫(huà),功能更強(qiáng)大。