HTML 鼠標坐標和元素坐標


在這一篇文章中,將會介紹鼠標坐標、元素坐標以及鼠標在指定元素內的坐標。

 

1. 鼠標坐標

在觸發鼠標相關事件時(如:click、mousemove),可以通過事件對象獲取當前鼠標的坐標。

獲取的坐標可分為2種:

1) MouseEvent.screenX、MouseEvent.screenY :基於屏幕的X、Y坐標;以屏幕的左上角為0,0起始點。

 

2) MouseEvent.clientX、MouseEvent.clientY :基於body的X、Y坐標;以當前body的左上角為0,0起始點,若body含有水平滾動條或垂直滾動條時,左上角還是0,0坐標點。

 

 

2.  元素的坐標

元素的getBoundingClientRect()方法可獲取一個 ClientRect 對象,其描述了元素的方位和寬高等信息。

2.1 ClientRect對象屬性

屬性名稱 屬性說明
width 元素的寬度
height 元素的高度
left  元素左上角距離當前可視body的寬度
top 元素左上角距離當前可視body的高度
right 元素右下角距離當前可視body的寬度;right = left + width
bottom 元素右下角距離當前可視body的高度;bottom = top + height

 

2.2 圖示

 

2.3 其他坐標

除了這些直接屬性外,還可以結合其他元素獲取更詳細的坐標:

1) 元素左上角在整體body的水平坐標 = document.body.scrollLeft + element.getBoundingClientRect().left;

2) 元素左上角在整體body的垂直坐標 = document.body.scrollTop + element.getBoundingClientRect().top;

 

3. 鼠標在元素內的坐標

通過之前學到的獲取鼠標坐標和元素坐標后,還可進一步獲取鼠標在元素內的坐標。

以鼠標在元素內的x坐標為例,等於鼠標的 clientX 減去 元素的getBoundingClientRect()放的left,最后在加上元素的scrollLeft的值。

公式如下

x = mouse.clientX - element.left + element.scrollLeft

y = mouse.clientY - element.top + element.scrollTop

示例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM