Web APIs中螢幕(Screen)、視窗(Window)、元素(Element)中的高度、寬度、滾動條總結
阿新 • • 發佈:2018-12-01
1 screen
// 螢幕:1440 * 900
screen.height // 1440
screen.width // 900
// 雙螢幕,根據主螢幕位置和工作列位置,值會變化
// 這裡,左側為主螢幕(1366 * 768),工作列垂直放置在主螢幕右側
screen.availHeight // 1400
screen.availWidth // 900
screen.availLeft // 1366, 左邊螢幕的width
screen.availTop // 0
2 window
- 瀏覽器視窗,screenX/Y outer/innerHeight/Width
// window縮放後,值會變化
window. screenX // 1500, 包括左側螢幕
window.screenY // 100
// chrome有,firefox沒有,DOM標準裡也沒有
window.screenLeft // = screenX
window.screenTop // = screenY
// 視窗高度(包括選單欄、位址列、收藏欄、狀態列等),window縮放後,值會變化
window.outerHeight // 900
window.outerWidth // 1440
// 頁面可用高度(不包含選單欄、位址列、收藏欄、狀態列等),window縮放後,值會變化
// 包含滾動條
window.innerHeight // 781
window.innerWidth // 1440
- 滾動條(scroll)
<html style="height: 1000px; width: 1600px;">
<html>
// document滾動的水平和垂直距離
window.scrollX // 100
window.scrollY // 200
window.pageXOffset // window.scrollX的別名
window.pageYOffset // window.scrollY的別名
// 到邊界處不在滾動
window.scrollBy(100, 200)
window.scrollTo(100, 200)
3 Element
<div id="main" style="height: 200px; width: 200px; overflow: scroll; padding: 20px;
border: solid black 20px; background: red;">
</div>
- height width
let m = document.querySelector('#main')
let ms = window.getComputedStyle(m)
m.style.height // "200px"
m.style.width = "300px" // 直接改變
// 不包含滾動條,等於m.clientHeight
ms.height // "183px"
ms.width = "300px" // 直接改變
- clientHeight/Width/Left/Top
// 以下屬性只讀(read-only)
// the inner height/width of the element
m.clientHeight // 183
m.clientWidth // 183
// the width of the left/top border
m.clientLeft // 20
m.clientTop // 20
- 滾動條(scroll)
// 滾動條(scroll)緊貼邊框(border),佔用元素內部寬高(clientWidth),不佔用padding的寬度
// the scroll view height/width of the element
m.scrollHeight // 223 = clientHeight + borderWidth * 2
m.scrollWidth // 223
// scroll的水平和滾動距離,滾動方法
m.scrollLeft
m.scrollTop
m.scrollTo(10, 20)
m.scrollBy(10, 20)