Javascript 獲取鼠標(biāo)當(dāng)前的位置實現(xiàn)方法
有時候,我們需要得到窗口拖動或者鼠標(biāo)移動的距離,此時可以通過計算鼠標(biāo)前后在頁面中的位置來得到想要的結(jié)果,下面介紹幾個事件屬性:
1、客戶區(qū)坐標(biāo)位置
鼠標(biāo)事件都是在瀏覽器視口中的特定位置上發(fā)生的。這個位置信息保存在事件對象的 clientX 和 clientY 屬性中。它們的值表示事件發(fā)生時鼠標(biāo)指針在視口中的水平和垂直坐標(biāo)(不包括頁面滾動的距離)。如下圖所示:
var div = document.getElementById("myDiv"); //獲取元素 EventUtil.on(div, "click", function(event){ event = EventUtil.getEvent(event); alert("Screen coordinates: " + event.screenX + "," + event.screenY); });
注:其中,EventUtil.on()表示為元素綁定事件,EventUtil.getEvent(event)表示獲取事件對象。EventUtil是自定義的事件對象(使用JavaScript實現(xiàn)),里面包含了一些跨瀏覽器的方法,具體實現(xiàn),請看另一篇文章《一些跨瀏覽器的事件方法》。如果項目使用了jQuery插件,可相應(yīng)的替換成對應(yīng)的方法。
2、頁面坐標(biāo)位置
事件對象屬性pageX 和pageY,能告訴你事件是在頁面中的什么位置發(fā)生的。換句話說,這兩個屬性表示鼠標(biāo)光標(biāo)在頁面中的位置(相當(dāng)于鼠標(biāo)在窗口中的位置坐標(biāo) + 頁面滾動的距離)。
var div = document.getElementById("myDiv");//獲取id為"myDiv"的元素 EventUtil.on(div, "click", function(event){//為元素綁定click事件 event = EventUtil.getEvent(event);//獲取event事件對象 var pageX = event.pageX,pageY = event.pageY; if (pageX === undefined){//IE8及更早版本 pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft); } if (pageY === undefined){ pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop); } alert("Page coordinates: " + pageX + "," + pageY); });
3、屏幕坐標(biāo)位置
通過screenX 和screenY 屬性就可以確定鼠標(biāo)事件發(fā)生時鼠標(biāo)指針相對于整個屏幕的坐標(biāo)信息。如下圖所示:
var div = document.getElementById("myDiv"); EventUtil.on(div, "click", function(event){ event = EventUtil.getEvent(event); alert("Screen coordinates: " + event.screenX + "," + event.screenY); });
文章參考自《JavaScript高級程序設(shè)計第三版》
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
性能優(yōu)化篇之Webpack構(gòu)建代碼質(zhì)量壓縮的建議
這篇文章主要介紹了性能優(yōu)化篇之Webpack構(gòu)建代碼質(zhì)量壓縮的建議,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Javascript 強制類型轉(zhuǎn)換函數(shù)
javascript是弱類型的語言,所以強制類型轉(zhuǎn)換還是比較重要的,下面看一下它的幾個強制轉(zhuǎn)換的函數(shù)2009-05-0570+漂亮且極具親和力的導(dǎo)航菜單設(shè)計國外網(wǎng)站推薦
網(wǎng)站可用性是任何網(wǎng)站的基本要素,而可用的導(dǎo)航更是網(wǎng)站所必需的要素之一。導(dǎo)航?jīng)Q定了用戶如何與網(wǎng)站進(jìn)行交互。如果沒有了可用的導(dǎo)航,那么網(wǎng)站內(nèi)容就會變得毫無用處。2011-09-09