当前位置:首页 > 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 标签来启用类似全屏的功能:

js  实现全屏

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

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

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…