Fullscreen API 可以使用你以全屏模式打开或关闭元素。例如,允许 videocanvas 元素,使其占据整个屏幕的。

  • 全屏显示可以是任意元素

  • HTML5 API 存在兼容性问题,即使高版本浏览器也有兼容性问题

  • 不同浏览器需要添加不同的前缀 webkitmozoms

Fullscreen API 的兼容情况

基本用法

主要了解它的两个方法:

  • document.requestFullscreen() 在系统上以全屏模式显示选定的元素,从而关闭其他应用程序以及浏览器和系统 UI 元素。
  • document.exitFullscreen() 将全屏模式退出到正常模式。
const fullscreen = (mode = true, el = 'body') =>
  mode
    ? document.querySelector(el).requestFullscreen()
    : document.exitFullscreen()

fullscreen() // 默认全屏模式打开 "body"
fullscreen(false) // 退出全屏模式

:fullscreen CSS 伪元素代表一个元素,当浏览器是在全屏模式下的显示。

.elem:fullscreen {
  background-color: #e4708a;
  width: 100vw;
  height: 100vh;
}

兼容

并不是所有的浏览器都支持 Fullscreen API,你可以做一下适当的兼容来解决问题。

function launchFullScreen(elem) {
  if (elem.requestFullScreen) {
    elem.requestFullScreen()
  } else if (elem.mozRequestFullScreen) {
    elem.mozRequestFullScreen()
  } else if (elem.webkitRequestFullScreen) {
    elem.webkitRequestFullScreen()
  } else if (elem.msRequestFullscreen) {
    elem.msRequestFullscreen()
  } else {
    elem.oRequestFullScreen()
  }
}

对应的,也需要添加 CSS 前缀。注意:有些使用旧的 :full-screen 语法而不是标准 :fullscreen

div:-webkit-full-screen {}
:-moz-full-screen {}
:-o-full-screen {}
:-ms-fullscreen {}