前言
在平時(shí)的開(kāi)發(fā)中耘戚,非常討厭的就是兼容性了祷舀,兼容性的問(wèn)題總會(huì)讓我們記憶混淆,所以這次來(lái)區(qū)分一下event對(duì)象中的常用獲取鼠標(biāo)位置码泛。
clientX clientY
event.clientX
event.clientY
client直譯就是客戶(hù)端猾封,客戶(hù)端的窗口就是指游覽器的顯示頁(yè)面內(nèi)容的窗口大小(不包含工具欄噪珊、導(dǎo)航欄等等)晌缘。
event.clientX逾苫、event.clientY就是用來(lái)獲取鼠標(biāo)距游覽器顯示窗口的長(zhǎng)度。
兼容性:IE和主流游覽器都支持枚钓。
offsetX offsetY
event.offsetX
event.offsetY
offset意為偏移量铅搓,是被點(diǎn)擊的元素距左上角為參考原點(diǎn)的長(zhǎng)度,而IE搀捷、FF和Chrome的參考點(diǎn)有所差異星掰。
Chrome下,offsetX offsetY是包含邊框的嫩舟,如圖所示氢烘。
而IE、FF是不包含邊框的家厌,如果鼠標(biāo)進(jìn)入到border區(qū)域播玖,為返回負(fù)值,如圖所示饭于。
兼容性:IE9+,chrome,FF都支持此屬性。
screenX screenY
event.screenX
event.sreenY
screen顧名思義是屏幕掰吕,是用來(lái)獲取鼠標(biāo)點(diǎn)擊位置到屏幕顯示器的距離果覆,距離的最大值需根據(jù)屏幕分辨率的尺寸來(lái)計(jì)算。
兼容性:所有游覽器都支持此屬性殖熟。
pageX pageY
event.pageX
event.pageY
page為頁(yè)面的意思局待,頁(yè)面的高度一般情況client游覽器顯示區(qū)域裝不下,所以會(huì)出現(xiàn)垂直滾動(dòng)條菱属。
鼠標(biāo)距離頁(yè)面初始page原點(diǎn)的長(zhǎng)度钳榨。
在IE中沒(méi)有pageX、pageY取而代之的是event.x纽门、evnet.y薛耻。x和y在webkit內(nèi)核下也實(shí)現(xiàn)了,所以火狐不支持x膜毁,y昭卓。
兼容性:IE不支持愤钾,其他高級(jí)游覽器支持瘟滨。