当前位置:首页 > 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
分享给朋友:

相关文章

vue实现全屏滚动

vue实现全屏滚动

实现全屏滚动的 Vue 方法 使用第三方库 vue-fullpage.js 安装 vue-fullpage.js: npm install vue-fullpage.js 在 Vue 项目中引入并注…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现下拉菜单

js实现下拉菜单

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