当前位置:首页 > 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);
}

监听全屏状态变化

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

js  实现全屏

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 在不同浏览器中存在前缀差异:

js  实现全屏

  • 标准: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实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…