HTMLVideoElement: videoHeight 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

HTMLVideoElement 介面的只讀 videoHeight 屬性表示影片的內在高度,以 CSS 畫素表示。簡單來說,這是媒體在其自然尺寸下的高度。

一個指定影片內在高度(以 CSS 畫素為單位)的整數值。如果元素的 readyStateHTMLMediaElement.HAVE_NOTHING,則此屬性的值為 0,因為影片或海報幀的尺寸資訊尚未可用。

關於內在寬度和高度

一個使用者代理透過以下方式計算元素的內在媒體寬度和高度:首先使用媒體的原始畫素寬度和高度,然後考慮包括以下因素:

  • 媒體的縱橫比
  • 媒體的清晰孔徑(位於媒體中心、與目標縱橫比匹配的子矩形)。
  • 目標裝置的螢幕解析度。
  • 媒體格式所需的任何其他因素。

如果元素當前顯示的是海報幀而不是渲染的影片,則海報幀的內在尺寸被認為是 <video> 元素的大小。

如果內在媒體尺寸在任何時候發生變化,並且元素的 readyState 不是 HAVE_NOTHING,則會向 <video> 元素髮送一個 resize 事件。當元素從顯示海報幀切換到顯示影片內容,或者當顯示的影片軌道發生變化時,都可能發生這種情況。

示例

此示例為 resize 事件建立了一個處理程式,該處理程式會將 <video> 元素的大小調整為與其內容相匹配。

js
let v = document.getElementById("myVideo");

v.addEventListener("resize", (ev) => {
  let w = v.videoWidth;
  let h = v.videoHeight;

  if (w && h) {
    v.style.width = w;
    v.style.height = h;
  }
});

請注意,這僅在 videoWidthvideoHeight 均非零時才應用更改。這可以避免在尚未獲得有效尺寸資訊時應用無效更改。

規範

規範
HTML
# dom-video-videoheight-dev

瀏覽器相容性