js獲取元素在頁面中的座標程式碼例項
本章節分享一段程式碼例項,它實現了獲取一個元素在頁面中座標的功能。
大家要注意是在頁面中的座標而不僅僅是在瀏覽器客戶區的座標,也就是包括滾動遮蓋的部分。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body{height:1500px;} #show{ width:200px; height:100px; background:#ccc; position:absolute; top:200px; left:100px; } #bt{ position:fixed; top:350px; left:100px; } </style> <script type="text/javascript"> function getOffsetRect(ele){ var box=ele.getBoundingClientRect(); var body=document.body, docElem=document.documentElement; //獲取頁面的scrollTop,scrollLeft(相容性寫法) var scrollTop=window.pageYOffset||docElem.scrollTop||body.scrollTop, scrollLeft=window.pageXOffset||docElem.scrollLeft||body.scrollLeft; var top=box.top+scrollTop, left=box.left+scrollLeft; return { //Math.round 相容火狐瀏覽器bug top:Math.round(top), left:Math.round(left) } } window.onload=function(){ var obt=document.getElementById("bt"); var odiv=document.getElementById("show"); obt.onclick=function(){ var obj=getOffsetRect(odiv); odiv.innerHTML=obj.top; } } </script> </head> <body> <div id="show"></div> <input type="button" id="bt" value="檢視效果"> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function getOffsetRect(ele){},引數規定要獲取座標的元素。
(2).var box=ele.getBoundingClientRect(),獲取元素在瀏覽器客戶區的座標。
(3). var body=document.body,獲取body元素。
(4).docElem=document.documentElement,獲取document元素。
(5).var scrollTop=window.pageYOffset||docElem.scrollTop||body.scrollTop,相容所有瀏覽器的獲取向上滾動的尺寸。
(6).var top=box.top+scrollTop,獲取在頁面垂直方向的偏移量,也就是元素在客戶區的上偏移量加上頁面向上滾動的尺寸。
(7).return {
//Math.round 相容火狐瀏覽器bug
top:Math.round(top),
left:Math.round(left)
},返回一個物件,此物件包含偏移量。
二.相關閱讀:
(1).pageYOffset可以參閱window.pageYOffset一章節。
(2).docElem.scrollTop||body.scrollTop可以參閱document.documentElement.scrollTop瀏覽器相容一章節。
(3).Math.round()可以參閱javascript Math.round()一章節。
(4).getBoundingClientRect()方法可以參閱js getBoundingClientRect()一章節。
(5).innerHTML屬性可以參閱js innerHTML一章節。
相關文章
- 獲取元素在頁面中的座標位置程式碼例項
- js獲取頁面中所有元素程式碼例項JS
- JavaScript 獲取div在頁面中座標JavaScript
- js獲取滑鼠在頁面中的座標簡單介紹JS
- js如何獲取元素在頁面中的位置JS
- js獲取網頁title標題程式碼例項JS網頁
- JavaScript獲取滑鼠在元素中的座標JavaScript
- JavaScript獲取元素在文件中座標JavaScript
- javascript獲取滑鼠指標在整個頁面中的座標位置JavaScript指標
- jquery獲取元素的標籤tagName程式碼例項jQuery
- js獲取元素的實際尺寸程式碼例項JS
- JavaScript-滑鼠獲取頁面座標JavaScript
- javascript頁面元素座標JavaScript
- 在頁面中插入flash的程式碼例項
- javascript獲取滑鼠在網頁文件中的座標JavaScript網頁
- jQuery獲取指定元素的父元素程式碼例項jQuery
- css獲取指定元素的兄弟元素程式碼例項CSS
- jquery獲取元素高度程式碼例項jQuery
- javascript獲取指定元素父元素程式碼例項JavaScript
- jQuery複製頁面元素程式碼例項jQuery
- 使用jquery獲取指定元素的子元素程式碼例項jQuery
- jQuery獲取指定的li元素程式碼例項jQuery
- javascript獲取元素的順序程式碼例項JavaScript
- 獲取指定元素下所有li元素程式碼例項
- jquery獲取同輩元素程式碼例項jQuery
- javascript獲取元素封裝程式碼例項JavaScript封裝
- jQuery獲取網頁中的元素距離文件邊緣的距離程式碼例項jQuery網頁
- 設定獲取div元素中的文字內容程式碼例項
- 獲取指定區間的li元素程式碼例項
- js獲取陣列中元素出現的次數程式碼例項JS陣列
- 獲取當前元素下一個元素程式碼例項
- puppeteer 頁面爬取例項(元素遍歷)
- jQuery獲取所有的li元素程式碼例項jQuery
- javascript獲取li元素內容程式碼例項JavaScript
- js獲取滑鼠指標在顯示器螢幕中的座標JS指標
- js獲取數字中的最小數字程式碼程式碼例項JS
- js實現的獲取指定元素的節點封裝程式碼例項JS封裝
- JavaScript獲取滑鼠在文件中座標JavaScript