当前位置:首页 > JavaScript

js 实现全屏

2026-01-31 17:38:28JavaScript

使用全屏 API 实现全屏

现代浏览器提供了 Fullscreen API,可以通过 JavaScript 控制元素进入或退出全屏模式。

// 进入全屏
function enterFullscreen(element) {
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.webkitRequestFullscreen) { /* Safari */
    element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) { /* IE11 */
    element.msRequestFullscreen();
  }
}

// 退出全屏
function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.webkitExitFullscreen) { /* Safari */
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) { /* IE11 */
    document.msExitFullscreen();
  }
}

// 检查全屏状态
function isFullscreen() {
  return !!(document.fullscreenElement || 
           document.webkitFullscreenElement || 
           document.msFullscreenElement);
}

监听全屏状态变化

可以添加事件监听器来响应全屏状态的变化。

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange); // Safari
document.addEventListener('MSFullscreenChange', handleFullscreenChange); // IE

function handleFullscreenChange() {
  if (isFullscreen()) {
    console.log('进入全屏模式');
  } else {
    console.log('退出全屏模式');
  }
}

全屏样式调整

在全屏模式下,可以使用 CSS 伪类 :fullscreen 为全屏元素添加特殊样式。

:fullscreen, :-webkit-full-screen, :-ms-fullscreen {
  background-color: white;
  width: 100%;
  height: 100%;
}

兼容性注意事项

Fullscreen API 在不同浏览器中存在前缀差异:

  • 标准:requestFullscreenexitFullscreenfullscreenElement
  • WebKit (Safari/Chrome):webkitRequestFullscreenwebkitExitFullscreenwebkitFullscreenElement
  • Microsoft (IE/Edge):msRequestFullscreenmsExitFullscreenmsFullscreenElement

实际应用示例

以下是一个完整的全屏切换按钮实现:

<button id="fullscreen-btn">切换全屏</button>
<div id="content">全屏内容区域</div>

<script>
  const btn = document.getElementById('fullscreen-btn');
  const content = document.getElementById('content');

  btn.addEventListener('click', () => {
    if (isFullscreen()) {
      exitFullscreen();
    } else {
      enterFullscreen(content);
    }
  });

  function enterFullscreen(element) {
    const requestMethod = element.requestFullscreen || 
                         element.webkitRequestFullscreen || 
                         element.msRequestFullscreen;
    requestMethod.call(element);
  }

  function exitFullscreen() {
    const exitMethod = document.exitFullscreen || 
                      document.webkitExitFullscreen || 
                      document.msExitFullscreen;
    exitMethod.call(document);
  }

  function isFullscreen() {
    return !!(document.fullscreenElement || 
             document.webkitFullscreenElement || 
             document.msFullscreenElement);
  }
</script>

移动端注意事项

在移动设备上,某些浏览器可能限制全屏功能,特别是 iOS Safari。某些情况下需要通过添加到主屏幕或使用特定 meta 标签来启用类似全屏的功能:

<meta name="apple-mobile-web-app-capable" content="yes">

js  实现全屏

标签: 全屏js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="d…