offsettop及相關屬性介紹

前言

? 最近做項目時遇到監聽html滾動相關的功能,涉及到offsettop屬性,以前認為參考點就是相對body,結果發現項目中非首屏的元素得到的offsettop居然是0,后來才知道原來有個offsetparent屬性,是以這個來定位的,這次也將相關屬性一并介紹一下。


offsetParent定位父級

? 偏移量屬性一般就是offsetLeft、offsetTop、offsetHeight、offsetWidth這四種了,然后還有一個offsetParent屬性作為偏移的參照點。在網上看到的offsetParent的定義是:與當前元素最近的經過定位(position不等于static)的父級元素(感覺和絕對定位的定位點很類似?)。然后具體情況分為下面幾種:

1. position為fixed時,offsetParent為null,offsettop的值和top相等。此時元素是以視口來定位的。

2. position非fixed,父級元素無定位(static)時,offsetParent為body。

3. position非fixed,父級元素有定位時,offsetParent為最近的有定位的父級元素。

4. body元素,offsetParent為null,offsettop為0(似乎是廢話)。


偏移量屬性

offsetLeft:元素相對于定位父級左內框的距離; offsetTop: 元素相對于定位父級頂部內框的距離。

offsetWidth: 元素在水平方向上占用的空間大小,無單位(以像素px計); offsetHeight: 表示元素在垂直方向上占用的空間大小,無單位(以像素px計)。包括滾動條的寬度。

tips:偏移量屬性都是只讀的


其他類似屬性

scrollHeight和scrollWidth,可滾動的絕對寬高,包括隱藏不可見的部分(offset僅是相對于元素的width和height不包括隱藏部分)。

scrollTop和scrollLeft: 可滑動的元素(即元素出現滾動條的情況時)內部在xy軸上滑動的距離,可為其賦值。

clientHeight和clientWidth:可視區域的寬高(不同瀏覽器中clientHeight和offsetWidth有區別)。


基本上就是這些了,后面再想到其他的或細節的部分再進行補充。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容