第4章 jQuery中的事件和動(dòng)畫(huà)
$(window).load(function(){})
等價(jià)于JS中的
window.onload = function(){}
bind('click',function(){})綁定事件
unbind()解除所有綁定事件
one()綁定后偿荷,觸發(fā)一次會(huì)立即解綁
hover(enter,leave)模擬光標(biāo)懸停事件
mouseout與mouseleave的區(qū)別:
mouseout饥漫,如果一個(gè)元素內(nèi)部有子元素涯竟,移到子元素上也會(huì)觸發(fā)
mouseleave,離開(kāi)這個(gè)元素所覆蓋的區(qū)域觸發(fā)停止事件冒泡,event.stopPropagation()
阻止默認(rèn)行為颈将,event.preventDefault()
同時(shí)阻止事件冒泡和默認(rèn)行為驹针,return false
事件對(duì)象的屬性
- event.type(),獲取事件類(lèi)型
- event.target()阿蝶,獲取觸發(fā)事件的元素
- event.pageX/Y()雳锋,獲取光標(biāo)相對(duì)于頁(yè)面的x坐標(biāo)和y坐標(biāo)
- event.which(),獲取鼠標(biāo)按鍵 1 = 左鍵羡洁,2 =中鍵 玷过, 3 = 右鍵
- event.metaKey(),獲取<ctrl>按鍵
- event.originaEvent()指向原始的事件對(duì)象
模擬操作
- trigger(type, [,data])模擬觸發(fā)事件
- triggerHandler(),類(lèi)似trigger辛蚊,只觸發(fā)綁定事件粤蝎,不執(zhí)行瀏覽器默認(rèn)操作
其他用法
1. 綁定多個(gè)事件類(lèi)型
bind("mouseover mouseout ")
2. 添加事件命名空間,便于管理
如bind("click.plugin")袋马,bind("mouseover.plugin")初澎,刪除事件的時(shí)候可以u(píng)nbind(".plugin")
3. 相同事件名稱(chēng),不同命名空間執(zhí)行方法
如同一個(gè)元素綁定click與click.plugin事件虑凛,如果點(diǎn)擊該元素碑宴,兩個(gè)事件都會(huì)觸發(fā),trigger("click!")桑谍,只會(huì)觸發(fā)click延柠,!的作用是匹配所有不包含再命名空間中的click方法
jQuery中的動(dòng)畫(huà)
hide()锣披,將元素隱藏贞间,相當(dāng)于將display樣式改為none.
show(),將元素顯示將display樣式設(shè)置為之前的樣式
show與hide中可以添加時(shí)間參數(shù)雹仿,slow-600ms增热,normal-400ms,fast-200ms胧辽,還可以直接寫(xiě)數(shù)字钓葫,默認(rèn)單位毫秒fadeIn(),只改變透明度的隱藏
fadeOut()票顾,只改變透明度的顯示
slideUp()础浮,只改變高度的隱藏
slideDown(),只改變高度的顯示
自定義動(dòng)畫(huà)方法animate()
累加奠骄、累減
{left: "+=500px"}
css()方法不會(huì)加入動(dòng)畫(huà)隊(duì)列豆同,需要放到回調(diào)函數(shù)中
stop([clearQueue], [gotoEnd])方法會(huì)結(jié)束當(dāng)前正在進(jìn)行的動(dòng)畫(huà),并立即執(zhí)行隊(duì)列中的下一個(gè)動(dòng)畫(huà)含鳞。clearQueue代表是否要清空未執(zhí)行完的動(dòng)畫(huà)隊(duì)列影锈,gotoEnd代表是否直接將正在執(zhí)行的動(dòng)畫(huà)跳轉(zhuǎn)到末狀態(tài),兩個(gè)參數(shù)都是Boolean值
判斷是否處于動(dòng)畫(huà)狀態(tài)
is(':animated')
延遲動(dòng)畫(huà)
delay(1000)