js實現(xiàn)獲取鼠標當(dāng)前的位置
有時候,我們需要得到窗口拖動或者鼠標移動的距離,此時可以通過計算鼠標前后在頁面中的位置來得到想要的結(jié)果,下面介紹幾個事件屬性:
1、客戶區(qū)坐標位置
鼠標事件都是在瀏覽器視口中的特定位置上發(fā)生的。這個位置信息保存在事件對象的 clientX 和 clientY 屬性中。它們的值表示事件發(fā)生時鼠標指針在視口中的水平和垂直坐標(不包括頁面滾動的距離)。如下圖所示:
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),請看另一篇文章《js 實現(xiàn)一些跨瀏覽器的事件方法詳解及實例》。如果項目使用了jQuery插件,可相應(yīng)的替換成對應(yīng)的方法。
2、頁面坐標位置
事件對象屬性pageX 和pageY,能告訴你事件是在頁面中的什么位置發(fā)生的。換句話說,這兩個屬性表示鼠標光標在頁面中的位置(相當(dāng)于鼠標在窗口中的位置坐標 + 頁面滾動的距離)。
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、屏幕坐標位置
通過screenX和screenY屬性就可以確定鼠標事件發(fā)生時鼠標指針相對于整個屏幕的坐標信息。如下圖所示:
var div = document.getElementById("myDiv"); EventUtil.on(div, "click", function(event){ event = EventUtil.getEvent(event); alert("Screen coordinates: " + event.screenX + "," + event.screenY); });
文章參考自《JavaScript高級程序設(shè)計第三版》
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
微信小程序?qū)崿F(xiàn)點餐小程序左側(cè)滑動菜單
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)點餐小程序左側(cè)滑動菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07Javascript 數(shù)組添加一個 indexOf 方法的實現(xiàn)代碼
Javascript 的字符串有個 indexOf 的方法,能夠返回字符在指定的字符串中的位置,非常有用,本文介紹了如何給 Javascript 數(shù)組也添加一個類似的方法。2009-09-09微信小程序開發(fā)(二):頁面跳轉(zhuǎn)并傳參操作示例
這篇文章主要介紹了微信小程序開發(fā)頁面跳轉(zhuǎn)并傳參操作,結(jié)合實例形式詳細分析了微信小程序頁面跳轉(zhuǎn)并傳參相關(guān)操作技巧,需要的朋友可以參考下2020-06-06深入理解JavaScript中的call、apply、bind方法的區(qū)別
下面小編就為大家?guī)硪黄钊肜斫釰avaScript中的call、apply、bind方法的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05JavaScript實現(xiàn)淘寶購物件數(shù)選擇
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)淘寶購物件數(shù)的選擇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08關(guān)于JavaScript中var聲明變量作用域的推斷
這個問題其實之前困擾了我很久。如今終于想明白了,特來分享,如果有錯誤的地方,請幫忙指正,我會隨時回來修正滴。2010-12-12