關於網頁的寬&高

Julian發表於2017-12-26

1. Element.clientHeightElement.clientWidth

兩者分別返回元素節點 可見部分 的高度和寬度。此“可見部分”包括padding、但不包括bordermargin滾動條

let rootElement = document.documentElement;

//網頁當前可見高&寬
rootElement.clientHeight
rootElement.clientWidth

2. Element.scrollHeightElement.scrollWidth

兩者分別返回網頁元素的總高度 & 總寬度。其包括padding,但不包括bordermargin滾動條

let rootElement = document.documentElement;

//網頁總高度
rootElement.scrollHeight
document.body.scrollHeight
document.body.clientHeight

//網頁總寬度
rootElement.scrollWidth
document.body.scrollWidth
document.body.clientWidth

3. Element.scrollLeftElement.scrollTop

兩者分別表示元素的水平滾動條向右滾動的畫素值,以及垂直滾動條向下滾動的畫素值。若網頁內沒有滾動條,則其值為 0

let rootElement = document.documentElement;

//當垂直滾動條滾到最底部時,返回 true
rootElement.scrollHeight - rootElement.scrollTop === rootElement.clientHeight

//當水平滾動條滾到最右側時,返回 true
rootElement.scrollWidth - rootElement.scrollLeft === rootElement.clientWidth

4. Element.offsetHeightElement.offsetWidth

兩者包括paddingborder滾動條

let rootElement = document.documentElement;

//網頁總高度
rootElement.offsetHeight
document.body.offsetHeight

//網頁總寬度
rootElement.offsetWidth
document.body.offsetWidth

綜上,獲取網頁高度&寬度的方法有:

let rootElement = document.documentElement;

//由於<html>和<body>的寬度可能設的不一樣,從<body>上取值會更保險一點。

//網頁總高度
rootElement.offsetHeight
rootElement.scrollHeight
document.body.offsetHeight
document.body.scrollHeight
//網頁總寬度
rootElement.offsetWidth
rootElement.scrollWidth
document.body.offsetWidth
document.body.scrollWidth


//可見部分高度
window.innerHeight             //包括滾動條
rootElement.clientHeight       //不包括滾動條
//可見部分寬度
window.innerWidth              //包括滾動條
rootElement.clientWidth        //不包括滾動條

相關文章