js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動距離及元素距離瀏覽器頂部距離
1. js獲取元素距離可視區(qū)的各種距離
const box=document.getElementById('box') // 獲取元素
const ct = box.getBoundingClientRect().top // 元素上邊距離頁面可視區(qū)上邊的距離
const cr = box.getBoundingClientRect().right // 元素右邊距離頁面可視區(qū)左邊的距離
const cb = box.getBoundingClientRect().bottom // 元素下邊距離頁面可視區(qū)上邊的距離
const cl = box.getBoundingClientRect().left // 元素左邊距離頁面可視區(qū)左邊的距離2. js獲取瀏覽器窗口滾動距離
// 瀏覽器滾動距離 const dt = document.documentElement.scrollTop || document.body.scrollTop;
3. js獲取元素實際距離頁面距離(包括滾動距離)
(1).如果父輩元素中有定位的元素,那么就返回距離當前元素最近的定位元素邊緣的距離。
(2).如果父輩元素中沒有定位元素,那么就返回相對于body邊緣距離。
有些限制,對于滾動父元素設(shè)置為scroll:hidden時不生效。
const box = document.getElementById('box')
// 元素實際距離頁面頂部距離
const bt = box.offsetTop;
// 元素實際距離頁面左邊距離
const bl = box.offsetLeft;
// 元素實際距離頁面右邊距離
const br = box.offsetRight;
// 元素實際距離頁面底部距離
const bb = box.offsetBottom;附:獲取元素到頂部或左部的距離
document.querySelector(selectDom).offsetTop:獲取元素到頂部的距離
document.querySelector(selectDom).offsetLeft:獲取元素到左邊的距離
offsetTop:元素到offsetParent頂部的距離
offsetParent:距離元素最近的一個具有定位的祖宗元素(relative,absolute,fixed),若祖宗都不符合條件,offsetParent為body。如下圖所示:獲取child的offsetTop,圖1的offsetParent為father,圖2的offsetParent為body。

注意:只有元素show(渲染完成)才會計算入offsetTop,若是中間有元素數(shù)據(jù)需要異步獲取,會導(dǎo)致最終獲取的offsetTop值偏小
總結(jié)
到此這篇關(guān)于js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動距離及元素距離瀏覽器頂部距離的文章就介紹到這了,更多相關(guān)js獲取元素到可視區(qū)的距離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript數(shù)據(jù)類型及其存儲方式詳細梳理
JavaScript是一種弱類型語言,它提供了許多不同的數(shù)據(jù)類型用于存儲和操作數(shù)據(jù),下面這篇文章主要介紹了JavaScript數(shù)據(jù)類型及其存儲方式的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-03-03
JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例
這篇文章主要介紹了JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作,涉及javascript針對json數(shù)組的遍歷、比較、排序等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
JavaScript實現(xiàn)找出字符串中第一個不重復(fù)的字符
這篇文章主要介紹了JavaScript實現(xiàn)找出字符串中第一個不重復(fù)的字符的方法,需要的朋友可以參考下2014-09-09
如何用js將blob為pcm格式轉(zhuǎn)換為MP3格式
要將PCM文件轉(zhuǎn)換為MP3文件,您可以使用Js實現(xiàn),這篇文章主要給大家介紹了關(guān)于如何用js將blob為pcm格式轉(zhuǎn)換為MP3格式的相關(guān)資料,需要的朋友可以參考下2023-11-11
elementui中@row-click和@row-dbclick不能同時使用問題及解決
在ElementUI中,@row-click和@row-dbclick不能同時使用,為同時響應(yīng)單擊和雙擊事件,可以通過@row-click事件結(jié)合定時器判斷點擊次數(shù)或自定義表格組件監(jiān)聽鼠標事件來實現(xiàn)2026-05-05
JavaScript中判斷為整數(shù)的多種方式及保留兩位小數(shù)的方法
這篇文章主要介紹了JavaScript中判斷為整數(shù)的多種方式,以及保留兩位小數(shù)的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09

