1. 程式人生 > >Web APIs中螢幕(Screen)、視窗(Window)、元素(Element)中的高度、寬度、滾動條總結

Web APIs中螢幕(Screen)、視窗(Window)、元素(Element)中的高度、寬度、滾動條總結

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)