scroll系列 相關(guān)屬性

元素內(nèi)容溢出 && 設置了元素的overflow屬性,產(chǎn)生滾動條或超出內(nèi)容被隱藏

實際上,不管是滾動條還是超出內(nèi)容被隱藏,這2種情況都可操作下面4個屬性,超出內(nèi)容被隱藏時,雖然沒有滾動條,但是可以用scrollTo()這個函數(shù)來滾動元素內(nèi)容,也會產(chǎn)生 scrollTopscrollLeft

屬性:

元素.scrollTop
【元素自身滾動條】距離【元素自身上邊緣】的距離(元素內(nèi)容被卷出的部分)
元素.scrollLeft
【元素自身滾動條】距離【元素自身左邊緣】的距離(元素內(nèi)容被卷出的部分)

元素.scrollHeight = (子內(nèi)容高度) + (元素padding)
= 元素css樣式高度 + 元素padding + 元素.scrollTop的最大值

元素.scrollWidth = (子內(nèi)容寬度) + (元素padding)
= 元素css樣式寬度 + 元素padding + 元素.scrollLeft的最大值

事件:

元素.onscroll
scroll 事件會在 文檔一個元素 滾動時觸發(fā)。。。
元素,滾動時觸發(fā)元素滾動條,滾動時觸發(fā) 是一個意思~?。L動條長在元素上,滾動滾動條,就是在滾動元素

HTML事件處理程序:

<element onscroll="myScript">

DOM0級事件處理程序:

object.onscroll = function() {
    myScript
};

DOM2級事件處理程序:

object.addEventListener("scroll", myScript);

方法:

元素.scrollTo(x, y)
通過scrollTo()這個函數(shù),來操作滾動條!??!
0,0 時,可做回到頂部效果...
x的值即為:元素.scrollLeft的值,y的值即為:元素.scrollTop的值...
x、y的值越大,元素內(nèi)容被卷出的部分越多...

注意區(qū)分:元素本身 和 子內(nèi)容

整個文檔的滾動條:

頁面有DTD(指定了 DOCTYPE),使用document.documentElement獲??;
頁面無DTD(沒有指定 DOCTYPE),使用 document.body 獲取。
為了兼容(不管有沒有 DTD)可以使用如下代碼:

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

但是,監(jiān)聽整個文檔scroll事件時,卻需要綁定到 window 。。。
各瀏覽器對于onscroll事件的支持:

onscroll事件的各瀏覽器兼容情況.png

如有不妥之處,歡迎指出,共同進步!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容