開始
最近作業務需求時,須要監聽滾動條scoll事件,獲取滾動條高度,用的document.body.scrollTop發現獲得的值一直是0,後來作了一些查詢,挖出很多祕密,作次筆記,以避免忘掉瀏覽器
先放結論:bash
- 對有doctype申明的頁面 能夠使用:document.documentElement.scrollTop
- 沒有doctype申明的頁面使用:document.body.scrollTop
- safari:特例獨行:使用 window.pageYOffset
因此咱們能夠這樣獲取scrollTop:工具
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
複製代碼
什麼是DTD:spa
DTD(文檔類型定義)的做用是定義 XML 文檔的合法構建模塊。它使用一系列的合法元素來定義文檔結構 在咱們的頁面中是這樣展示code
有些東西不手寫一遍永遠記不下來:cdn
screen對象(針對的是整個屏幕):
- screen.widht|height:整個屏幕的高度跟寬度
- screen.avaiWidth|availHeight: 屏幕可用寬高(減去底下任務欄的高度)
window對象(針對的是瀏覽器)
- window.outerWidth|outerHeight:整個瀏覽器的寬高
- window.innerWidth|outerWidth:瀏覽器可用的寬高(出去工具欄的高度,可是包括滾動條)
元素對象
- ele.offerWidth|offerHeight: 元素總的寬高(包括滾動距離)
- body.clientWidth|clientHeight: 通常用來描述文旦視口的大小