day4(瀏覽器中的位置)

總結(jié)一下jquery獲取元素位置方法:

一般情況,最簡(jiǎn)單的就是到達(dá)某一個(gè)元素時(shí),元素出現(xiàn):
$(window).scrollTop+$(window)[0].innerHeight

關(guān)于窗口大小(即就是可視區(qū)域大小)

其中jquery的 $(window).innerHeight()==$(window)[0].innerHeight 其實(shí)相當(dāng)于jquer把這個(gè)原生js中的屬性封裝成了一個(gè)函數(shù) window.innnerHeight也和上面兩個(gè)式子相等.
還有一個(gè):document.documentElement.clientHeight=window.innnerHeight
so 四個(gè)都相等啦!

關(guān)于滾動(dòng)條:

$(window).scrollTop()=window.scrollY=document.body.scrollTop

頁(yè)面總高度

document.body.clientHeight

某個(gè)元素距離頂端的距離

document.getElementById("product-active").offsetTop(整數(shù))
只能說這兩個(gè)近似相等
$("#product-active").offset().top(浮點(diǎn)數(shù))

鼠標(biāo)的相對(duì)距離

不存在e.target.offsetX這個(gè)屬性,只有e.target.offsetLeft這個(gè)屬性
注意如果事件綁定在<div><h1></h1></div>上,鼠標(biāo)移入h1會(huì)觸發(fā)
此時(shí)得到的坐標(biāo)應(yīng)該為 e.target.offsetLeft+e.offsetX就是相當(dāng)于相對(duì)div的距離。
另外clientX得到的是相對(duì)于可視窗口00點(diǎn)的坐標(biāo),而pageX相對(duì)于html的00坐標(biāo)


注意理解!
// 變量的解構(gòu) 其實(shí)就相當(dāng)于給x賦值,因?yàn)閑里面有e.offsetX這個(gè)屬性
let { offsetX: x, offsetY: y } = e;

getBoundingClientRect

getBoundingClientRect() 會(huì)得到四個(gè)值,分別是width,height,top,left。

注意得到的相對(duì)于視窗的top和left 如果相對(duì)于html記得加上滾動(dòng)條的距離(window.scrollY或者document.body.scrollTop)

相關(guān)兼容性及整理戳這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容