1.序列與迭代
? eq()方法:
? ? ? ? ? ? eq()是用來(lái)精確選擇某個(gè)序列中的某個(gè)元素,如下:
現(xiàn)在我們想選擇box2里面的1號(hào)下標(biāo)的p:
index()方法:
? ? ? ? index()返回這個(gè)元素在親兄弟中的排名屯仗,無(wú)視選擇器怎么選。如下:
? ? ? ? $(this).index()是一個(gè)很常見(jiàn)的寫(xiě)法炒刁,表示觸發(fā)這個(gè)事件的元素,在自己親兄弟中的排名:
? ? each()方法:
? ? ? ? ? ? each()表示遍歷節(jié)點(diǎn)下翎,也叫作迭代符合條件的節(jié)點(diǎn)顽冶。舉個(gè)栗子:
? ? ? ? ? ? ? ? ? ? ? ? ? ? $("p").each(function(i){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$(this).animate({"width":50 * i},1000);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?});
? ? ? ? each()語(yǔ)句就好比派出一個(gè)偵察兵召夹,挨家挨戶去敲門(mén)岩喷,敲開(kāi)門(mén)之后做什么事情,寫(xiě)在function(){}里面监憎,這里面的$(this)表示敲開(kāi)門(mén)的這家纱意。$(“p”)選擇了頁(yè)面上的所有的p,現(xiàn)在我們想分別為這個(gè)p設(shè)置不同的動(dòng)畫(huà)終點(diǎn)鲸阔。那么each語(yǔ)句就很好用偷霉,會(huì)依次遍歷所有的p,$(this)表示你現(xiàn)在正在遍歷的p
size()方法和length屬性:
? ? ? ?jQuery對(duì)象中元素的個(gè)數(shù)褐筛。
? ? ? ?前面$()的元素頁(yè)面上一共有幾個(gè)类少,length、size()返回的都是同一個(gè)數(shù)值渔扎,就是個(gè)數(shù)瞒滴。
? ? ? ? ? ? ? ? ? ? ? ? ? $("p").length
? ? ? ? ? ? ? ? ? ? ? ? ? $("p").size()
get()方法
? ? ? get()方法和eq()方法基本一致,都依賴$()的序列。
? ? ? eq()返回的是jQuery對(duì)象妓忍,而get()返回的是原生JS對(duì)象。jQuery對(duì)象后面要跟著jQuery方法愧旦,原生對(duì)象后面要跟著原生屬性世剖、方法:
? ? ? ? ? ? ? ? ? ?$("p").eq(2).html("web前端");
? ? ? ? ? ? ? ? ? ?等價(jià)于:
? ? ? ? ? ? ? ? ? $("p").get(2).innerHTML= "web前端";
? ? ? ? ? ? ? ? ? ? 等價(jià)于:
? ? ? ? ? ? ? ? ? $("p").eq(2)[0].innerHTML= "web前端";
2.動(dòng)畫(huà)相關(guān)方法
內(nèi)置show()、hide()笤虫、toggle()方法
? ? ? ?show()顯示旁瘫、hide()隱藏、toggle()切換
? ? ? ? ? ? ?$("div").show();? ? //讓一個(gè)本身是display:none;元素顯示
? ? ? ? ? ? ?$("div").hide();? ? ?//隱藏元素display:none;
? ? ? ? ? ? ?$("div").toggle();? ?//切換顯示狀態(tài)琼蚯。自行帶有判斷酬凳,如果可見(jiàn),就隱藏遭庶;否則顯示宁仔。
? ? ? ? 特別的,如果show()峦睡、hide()翎苫、toggle()里面有數(shù)值,將變?yōu)閯?dòng)畫(huà):
slideDown()榨了、slideUp()煎谍、slideToggle()方法
? ? ? slideDown :下滑展開(kāi)
? ? ? slideUp:上滑收回
? ? ? slideToggle :滑動(dòng)切換
? ? ? ?slideDown()的起點(diǎn)一定是display:none換句話說(shuō),只有display:none的元素龙屉,才能夠調(diào)slideDown()
? ? ? 相反的呐粘,slideUp()的終點(diǎn)就是display:none;同樣的,slideDown转捕、slideUp作岖、slideToggle里面可以寫(xiě)動(dòng)畫(huà)時(shí)間、回調(diào)函數(shù)瓜富。
fadeIn()鳍咱、fadeOut()、fadeTo()与柑、fadeToggle()方法
? ? ?fadeIn()淡入
? ? fadeOut()淡出
? ? fadeTo()淡到那個(gè)數(shù)
? ? fadeToggle()淡出入切換
fadeIn()的起點(diǎn)是display:none;換句話說(shuō)谤辜,只有display:none的元素,才能執(zhí)行fadeIn()价捧,如下:
? ? $("div").fadeIn(5000);
動(dòng)畫(huà)機(jī)理:
? ? ? ? ?一個(gè)display:none的元素丑念,瞬間可見(jiàn),然后瞬間變?yōu)閛pacity:0结蟋,往自己的opacity上變脯倚。如果沒(méi)有設(shè)置opacity,就往1變。
stop():
停止當(dāng)前的animate動(dòng)畫(huà)推正,但是不清除隊(duì)列恍涂,立即執(zhí)行后面的animate動(dòng)畫(huà):
? ? ? ? ?$("div").stop();? ??//等價(jià)于$(“div”).stop(false,false);
停止當(dāng)前的animate動(dòng)畫(huà),并且清除隊(duì)列植榕,盒子留在了此時(shí)的位置:
? ? ? ? ?$("div").stop(true);? ?//等價(jià)于$(“div”).stop(true,false);
瞬間完成當(dāng)前的animate動(dòng)畫(huà)再沧,并且清除隊(duì)列:
? ? ? ? ?$("div").stop(true,true);
瞬間完成當(dāng)前的animate動(dòng)畫(huà),但是不清楚隊(duì)列尊残,立即執(zhí)行后面的動(dòng)畫(huà):
? ? ? ? $("div").stop(false,true);
公式:
? ? ? ? stop(是否清除隊(duì)列,是否瞬間完成當(dāng)前動(dòng)畫(huà))
? ? ? ? 如果沒(méi)有寫(xiě)true或者false炒瘸,默認(rèn)是false
?finish():
finish()瞬間完成所有動(dòng)畫(huà)隊(duì)列!
? ? ? ? ? ? $("div").finish();
stop可以用來(lái)防止動(dòng)畫(huà)的積累:
連續(xù)打點(diǎn)語(yǔ)法寝衫,先清除所有的動(dòng)畫(huà)隊(duì)列顷扩,然后執(zhí)行新的動(dòng)畫(huà)
? ? ? ? ? ? ?$("div").stop(true).animate({"left":100},1000);
is(":animated"):
? ? ? is()方法表示身份探測(cè),返回true慰毅、false隘截。
? ? ? is表示“是不是”,而不是“是”
? ? ? is里面可以寫(xiě)篩選器:
判斷點(diǎn)擊的這個(gè)p是不是序號(hào)是奇數(shù):
? ? ? ? $(this).is("p:odd")
判斷點(diǎn)擊的這個(gè)p是不是序號(hào)小于3:
? ? ? $(this).is("p:lt(3)")
還可以寫(xiě)
? ? ?is(":animated")
判斷這個(gè)元素是否在運(yùn)動(dòng)中事富。
判斷是否在運(yùn)動(dòng)中技俐,可以防止動(dòng)畫(huà)的積累:
? ? ? ? ? if($(this).children(".dropbox").is(":animated")){
? ? ? ? ? return;
? ? ? ? ?}
只要?jiǎng)赢?huà)正在進(jìn)行,那么我不僅受更多的命令统台。
我們之前學(xué)習(xí)的stop()雕擂,哲學(xué)不一樣,動(dòng)畫(huà)正在進(jìn)行贱勃,立即停止手上的動(dòng)畫(huà)井赌,執(zhí)行新的命令