名詞解釋
window.outerHeight
獲取整個瀏覽器
的高度、包含側邊欄、、書籤、網頁標題。此處在縮放瀏覽器時,也會有所變化,並非指電腦螢幕的高度。window.innerHeight
瀏覽器的顯示內容(viewport)高度;如果有水平滾動條,也包括滾動條高度。document.body.clientHeight
為內容文檔body
的高度,當高度超過window.innerHeight
,則會出現滾動條。
如果在body
設定高度為 100vh 或是在html
設定高度 100vh 而 body 的高度為 100% 的話(隨父層html
高度),此時clientHeight
、height()
都只會給出window.innerHeight
的高度數值,這點在設定高度上比需要注意。window.screen.height
電腦解析度的高,如果電腦解析度文 1920*1080,那此數值就會是 1080。screen.availHeight
為螢幕可用工作的高度,此數值不會變動,畢竟螢幕的大小只有在換螢幕時才會變換啊。HTMLElement.offsetHeight
為該element
orDOM
元素的高度,此高度包含 padding、border,不包含 margin 數值Element.scrollHeight
當該element
有設定 overflow 屬性,而沒顯示在螢幕上的高度可使用scrollHeight
取得該element
全部高度
滾動應用
- Element.scrollTop: 獲取元素被向上滾動的高度,此項常被用來監聽
window
的滾動事件
ex:1
2
3
4
5
6window.onscroll = function() {
//為了保證相容性,這裡取兩個值,哪個有值取哪一個
//scrollTop就是觸發滾輪事件時滾輪的高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
console.log(scrollTop);
}
結尾
基本上使用 HTMLElement.offsetHeight
以及 Element.scrollTop
加上監聽事件,就能做出像是 錨點動畫
、回頂部動畫
、滾動特定區塊後增加 DOM 元素的 class 配合 transform 屬性
等等,
本篇著重基本觀念解說,監聽事件的範例之後會在寫篇文章記錄。