JavaScript獲取元素距離文件頂部的距離
分享一段程式碼例項,它可以獲取元素距離視窗頂部的距離。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin:0px; padding:0px; } body { height:1500px; } #box { width:200px; height:100px; background-color:blue; padding:50px; margin:30px; } #ant { width:100px; height:50px; text-align:center; line-height:50px; background-color:red; } </style> <script> window.onload = () => { let obox = document.getElementById("box"); let oant = document.getElementById("ant"); let obt = document.getElementById("bt"); let getPoint = (obj) => { let t = obj.offsetTop; while (obj = obj.offsetParent) { t += obj.offsetTop; } return t; } obt.onclick = () => { oant.innerHTML = getPoint(oant); } } </script> </head> <body> <div id="box"> <div id="ant"></div> </div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
上面程式碼實現了我們要求,下面介紹一下實現過程。
一.實現原理:
offsetTop可以返回元素距離offsetParent屬性返回元素頂部的距離(如果父元素有定位的,那麼將返回距離最近的定位元素,否則返回body元素,元素可能有多個定位元素,需要通過遞迴的方式層層獲取距離,然後相加)。
特別說明:需要將body的外邊距設定為0,這樣元素距離body頂部的距離就等同於距離文件頂部的距離。
二.相關閱讀:
(1).箭頭函式參閱JavaScript 箭頭函式介紹一章節。
(2).document.getElementById參閱document.getElementById一章節。
(3).offsetTop參閱JavaScript offsetTop一章節。
(4).offsetParent參閱JavaScript offsetParent一章節。
(5).innerHTML參閱JavaScript innerHTML 屬性一章節。
(6).while參閱JavaScript while 語句一章節。
相關文章
- JavaScript 元素距離視窗頂部的距離JavaScript
- 原生JS獲取DOM 節點到瀏覽器頂部的距離或者左側的距離JS瀏覽器
- 獲取DOM元素到頁面頂部的距離,親測有效版本(轉載)
- vue js 獲取滾動距離 以及 返回頂部按鈕VueJS
- 馬氏距離與歐氏距離
- 最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
- 【Python】距離Python
- 編輯距離及編輯距離演算法演算法
- 曼哈頓距離與切比雪夫距離
- Laravel 距離排序Laravel排序
- unit原子距離
- 餘弦距離
- 馬氏距離
- 曼哈頓距離與切比雪夫距離的互化
- 透過經緯度計算距離獲取附近商家
- milvus 使用 l2 歐式距離計算向量的距離,計算出來的距離的最大值是多少?
- 【DP】編輯距離
- 距離度量學習
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- 獲取資料庫中到指定經緯度距離的座標資料庫
- LocalDate獲取距離當前日期三個月所有周末的資訊LDA
- CSS3元素水平運動指定距離CSSS3
- 距離容差來源
- 461. 漢明距離
- 漢明距離(Hamming distance)
- 編輯距離演算法演算法
- LeetCode 461. 漢明距離LeetCode
- LeetCode72編輯距離LeetCode
- LeetCode 834 樹中距離之和LeetCode
- 經緯度距離換算
- 線性dp:編輯距離
- 距離-有這麼多類
- 902.最短編輯距離
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值 2022-02-14 0Java
- ggplot2中繪圖設定x軸、y軸名稱距離框線的距離繪圖
- 你離ELK只有一句docker-compose的距離Docker
- Levenshtein:計算字串的編輯距離字串
- vscode開啟關閉編輯區域頂部固定區域 頂部有一段行數距離高度 StickyScrollVSCode