js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動(dòng)距離及元素距離瀏覽器頂部距離
1. js獲取元素距離可視區(qū)的各種距離
const box=document.getElementById('box') // 獲取元素 const ct = box.getBoundingClientRect().top // 元素上邊距離頁(yè)面可視區(qū)上邊的距離 const cr = box.getBoundingClientRect().right // 元素右邊距離頁(yè)面可視區(qū)左邊的距離 const cb = box.getBoundingClientRect().bottom // 元素下邊距離頁(yè)面可視區(qū)上邊的距離 const cl = box.getBoundingClientRect().left // 元素左邊距離頁(yè)面可視區(qū)左邊的距離
2. js獲取瀏覽器窗口滾動(dòng)距離
// 瀏覽器滾動(dòng)距離 const dt = document.documentElement.scrollTop || document.body.scrollTop;
3. js獲取元素實(shí)際距離頁(yè)面距離(包括滾動(dòng)距離)
(1).如果父輩元素中有定位的元素,那么就返回距離當(dāng)前元素最近的定位元素邊緣的距離。
(2).如果父輩元素中沒(méi)有定位元素,那么就返回相對(duì)于body邊緣距離。
有些限制,對(duì)于滾動(dòng)父元素設(shè)置為scroll:hidden時(shí)不生效。
const box = document.getElementById('box') // 元素實(shí)際距離頁(yè)面頂部距離 const bt = box.offsetTop; // 元素實(shí)際距離頁(yè)面左邊距離 const bl = box.offsetLeft; // 元素實(shí)際距離頁(yè)面右邊距離 const br = box.offsetRight; // 元素實(shí)際距離頁(yè)面底部距離 const bb = box.offsetBottom;
附:獲取元素到頂部或左部的距離
document.querySelector(selectDom).offsetTop:獲取元素到頂部的距離
document.querySelector(selectDom).offsetLeft:獲取元素到左邊的距離
offsetTop:元素到offsetParent頂部的距離
offsetParent:距離元素最近的一個(gè)具有定位的祖宗元素(relative,absolute,fixed),若祖宗都不符合條件,offsetParent為body。如下圖所示:獲取child的offsetTop,圖1的offsetParent為father,圖2的offsetParent為body。
注意:只有元素show(渲染完成)才會(huì)計(jì)算入offsetTop,若是中間有元素?cái)?shù)據(jù)需要異步獲取,會(huì)導(dǎo)致最終獲取的offsetTop值偏小
總結(jié)
到此這篇關(guān)于js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動(dòng)距離及元素距離瀏覽器頂部距離的文章就介紹到這了,更多相關(guān)js獲取元素到可視區(qū)的距離內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
火狐瀏覽器(firefox)下獲得Event對(duì)象以及keyCode
firefox Event對(duì)象2008-11-11一文詳細(xì)分析前端請(qǐng)求中的“Unsupported?Media?Type”問(wèn)題
在Web開(kāi)發(fā)中,前后端交互頻繁遇到HTTP狀態(tài)碼415錯(cuò)誤,這表明服務(wù)器無(wú)法處理因Content-Type不匹配的請(qǐng)求,常見(jiàn)于POST或PUT請(qǐng)求,必須確保請(qǐng)求頭中的Content-Type與服務(wù)器期望的一致,跨域請(qǐng)求中,需要的朋友可以參考下2024-10-10Javascript實(shí)現(xiàn)Array和String互轉(zhuǎn)換的方法
這篇文章主要介紹了Javascript實(shí)現(xiàn)Array和String互轉(zhuǎn)換的方法,涉及JavaScript中toString方法與split方法的使用技巧,需要的朋友可以參考下2015-12-12JavaScript 基礎(chǔ)表單驗(yàn)證示例(純Js實(shí)現(xiàn))
下面小編就為大家?guī)?lái)一篇JavaScript 基礎(chǔ)表單驗(yàn)證示例(純Js實(shí)現(xiàn))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07BootstrapValidator實(shí)現(xiàn)表單驗(yàn)證功能
這篇文章主要為大家詳細(xì)介紹了BootstrapValidator實(shí)現(xiàn)表單驗(yàn)證功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11JavaScript判斷變量數(shù)據(jù)類型的常見(jiàn)方法小結(jié)
在JavaScript開(kāi)發(fā)中,了解和判斷變量的數(shù)據(jù)類型是編寫(xiě)健壯代碼的基礎(chǔ),變量的類型可以在運(yùn)行時(shí)改變,這為開(kāi)發(fā)者帶來(lái)了靈活性的同時(shí)也增加了復(fù)雜性,本文將深入探討幾種常見(jiàn)的判斷變量類型的技巧,并結(jié)合實(shí)際案例進(jìn)行分析,需要的朋友可以參考下2024-12-12