歡迎訪問我的博客https://qqqww.com/,祝碼農(nóng)同胞們早日走上人生巔峰,迎娶白富美~~~
聲明:參考文檔你是如何理解var e=e||window.event的
剛才寫博客《javascript實現(xiàn)簡單拖曳功能》的時候缔逛,用到了
e.clientX
這一類坐標(biāo)屬性,就想到把這一類相似的屬性都整理一下姓惑,他們分別為
e.clientX , e.clientY
e.pageX , e.pageY
e.offsetX , e.offsetY
e.screenX , e.screenY
e 是什么
這里先說一下
e
是什么
e
是給一個事件對象褐奴,可以在編寫函數(shù)的時候,傳入一個形參e
于毙,然后執(zhí)行函數(shù)的時候傳入一個實參敦冬,那么e
這個時候就是這個作為實參的對象
var event = e || event
兼容性寫法,這樣寫可能不太好理解唯沮,但是假如給他寫成
var event = event || window.event
脖旱,或者寫成var event = e ? event : window.event
想必就更好理解了
下面借用道友的一張圖來說明一下針對于不同瀏覽器的兼容性問題
很顯然堪遂,在
Firefox
瀏覽器中僅支持event
,而且Forefox
支持對象參數(shù)的傳入萌庆,但是IE6/7/8
是不支持對象參數(shù)的傳入的溶褪,所以此種方法保證對所有瀏覽器的兼容
e.clientX , e.clientY
鼠標(biāo)相對于瀏覽器窗口可視區(qū)域的X,Y坐標(biāo)践险,可視區(qū)域不包括工具欄和滾動條猿妈,IE事件和標(biāo)準(zhǔn)事件支持
e.screenX , e.screenY
上面講了e.clientX , e.clientY,再講e.screenX , e.screenY感覺再合適不過了巍虫,因為是鼠標(biāo)相對于屏幕的坐標(biāo)彭则,包括瀏覽器上面的工具欄和滾動條,二者差別就在這占遥,IE事件和標(biāo)準(zhǔn)事件支持
e.pageX , e.pageY
相對于文檔的定位俯抖,文檔的左上角為(0,0),向右為正筷频,向下為正蚌成,IE不支持
e.offsetX , e.offsetY
和e.pageX , e.pageY一模一樣的功能,但是這兩個屬性只有IE支持
相關(guān)的一些寫法
在文檔中的位置Y坐標(biāo)等于在可視區(qū)域的Y坐標(biāo)加上滾動條垂直方向卷去的距> 離:
e.pageY = e.pageY || e.clientY + (window).scrollTop():瀏覽器滾動條滾動的垂直距離