多螢幕源
視窗管理 API 引入了多屏原點的概念,它是宿主作業系統 (OS) 虛擬螢幕排列的 (0,0) 座標,所有可用螢幕和視窗都圍繞它定位。按照慣例,多屏原點是 OS 主螢幕的左上角,儘管規範規定它可以是虛擬螢幕排列中的任意一點。
主螢幕通常由使用者透過作業系統設定指定,並且通常包含作業系統 UI 功能,例如工作列/圖示停靠欄。
注意: 正座標值向右和向下,負座標值向左和向上。
對現有 Web 平臺功能的影響
多屏原點與以下 API 相關
- 每個可用螢幕的
ScreenDetailed.left、ScreenDetailed.top、ScreenDetailed.availLeft和ScreenDetailed.availTop值都是相對於多屏原點報告的。 - 每個視窗的
Window.screenLeft、Window.screenTop、Window.screenX、Window.screenY值都是相對於多屏原點報告的。 - 使用
Window.moveTo()和Window.open()時,視窗是相對於多屏原點定位的。
注意: 並非所有瀏覽器都正式支援多屏原點,但有些瀏覽器有自己的非標準實現。建議您檢查上述功能的瀏覽器相容性資訊,以瞭解每個瀏覽器中的行為。
視覺示例
假設我們有一個解析度為 1920 x 1080 的外部顯示器作為主顯示器,以及一個解析度為 1440 x 900 的筆記型電腦內建顯示器作為輔助顯示器。我們還假設作業系統 UI 在螢幕頂部佔用 25px,並且僅在主螢幕上繪製。
如果輔助螢幕位於主螢幕的正右側,頂部邊緣對齊
- 主螢幕的
left/top值為 (0,0),而其availLeft/availTop值為 (0,25) — 加上了作業系統 UI 的厚度。 - 輔助螢幕的
left/top值為 (1920,0),而其availLeft/availTop值也為 (1920,0) — 作業系統 UI 不在輔助螢幕上繪製。
但是,如果輔助螢幕位於主螢幕的正左側,頂部邊緣對齊
- 主螢幕的
left/top值仍為 (0,0),而其availLeft/availTop值為 (0,25)。 - 輔助螢幕的
left/top值為 (-1440,0),而其availLeft/availTop值也為 (-1440,0)。