当前位置:首页 > HTML

h5实现全屏

2026-03-06 13:11:16HTML

全屏 API 的基本使用

现代浏览器提供了 Fullscreen API,允许通过 JavaScript 将特定元素(如 <div><video>)全屏显示。以下是核心方法:

  • 进入全屏:调用元素的 requestFullscreen() 方法。
  • 退出全屏:调用 document.exitFullscreen()
  • 检测全屏状态:通过 document.fullscreenElement 判断当前是否有元素处于全屏。
// 进入全屏(以 div 元素为例)
const element = document.getElementById('fullscreen-target');
element.requestFullscreen().catch(err => {
  console.error('全屏失败:', err);
});

// 退出全屏
document.exitFullscreen();

// 监听全屏变化事件
document.addEventListener('fullscreenchange', () => {
  if (document.fullscreenElement) {
    console.log('已进入全屏');
  } else {
    console.log('已退出全屏');
  }
});

兼容性处理

不同浏览器可能需要前缀,以下是兼容性写法:

function toggleFullscreen(element) {
  const requestMethod = 
    element.requestFullscreen || 
    element.webkitRequestFullscreen || 
    element.mozRequestFullScreen || 
    element.msRequestFullscreen;

  if (requestMethod) {
    requestMethod.call(element);
  } else if (typeof window.ActiveXObject !== 'undefined') {
    // 兼容旧版 IE
    const wscript = new ActiveXObject('WScript.Shell');
    if (wscript) wscript.SendKeys('{F11}');
  }
}

CSS 全屏样式优化

全屏元素可以通过 CSS 控制样式,确保内容适配全屏:

h5实现全屏

#fullscreen-target:-webkit-full-screen {
  width: 100%;
  height: 100%;
  background: #000;
  color: #fff;
}
#fullscreen-target:-moz-full-screen {
  /* Firefox 兼容 */
  width: 100vw;
  height: 100vh;
}

用户交互触发

通常通过按钮点击触发全屏,需注意浏览器安全策略要求全屏操作必须由用户手势(如 click)触发:

<button onclick="toggleFullscreen(document.getElementById('fullscreen-target'))">
  切换全屏
</button>
<div id="fullscreen-target">全屏内容区域</div>

移动端注意事项

移动设备可能限制全屏功能,建议结合 meta 标签优化视口:

h5实现全屏

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

部分安卓设备需使用 webkitRequestFullscreen 并配合手势触发。

示例完整代码

以下是一个完整示例,包含进入/退出全屏和样式控制:

<!DOCTYPE html>
<html>
<head>
  <style>
    #fullscreen-target {
      width: 200px;
      height: 200px;
      background: #eee;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    #fullscreen-target:-webkit-full-screen {
      background: #000;
      color: #fff;
    }
  </style>
</head>
<body>
  <button id="toggle-btn">切换全屏</button>
  <div id="fullscreen-target">全屏内容</div>

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

    btn.addEventListener('click', () => {
      if (!document.fullscreenElement) {
        target.requestFullscreen().catch(console.error);
      } else {
        document.exitFullscreen();
      }
    });
  </script>
</body>
</html>

通过上述方法,可以实现在 H5 中灵活控制全屏显示,并覆盖主流浏览器的兼容性问题。

标签: 全屏
分享给朋友:

相关文章

前端vue实现全屏

前端vue实现全屏

Vue实现全屏功能的方法 使用Vue实现全屏功能可以通过浏览器的全屏API结合Vue的指令或方法来实现。以下是几种常见的实现方式: 使用原生JavaScript全屏API 浏览器提供了request…

vue实现弹框全屏

vue实现弹框全屏

实现弹框全屏的基本思路 在Vue中实现弹框全屏功能,可以通过CSS样式和Vue的状态管理来控制弹框的显示与全屏状态。关键在于动态切换弹框的CSS类,使其覆盖整个视口。 使用CSS控制全屏样式 创建一…

vue实现图片全屏显示

vue实现图片全屏显示

实现图片全屏显示的方法 使用全屏API结合Vue指令 Vue可以通过自定义指令封装全屏功能。以下是一个实现图片点击全屏显示的示例代码: <template> <div>…

vue如何实现全屏轮播

vue如何实现全屏轮播

Vue 实现全屏轮播的方法 全屏轮播是一种常见的网页设计元素,通常用于展示图片或内容。以下是在 Vue 中实现全屏轮播的几种方法。 使用第三方库(如 Swiper) Swiper 是一个流行的轮播库…

react 实现页面多个全屏

react 实现页面多个全屏

实现多个全屏页面的方法 在React中实现多个全屏页面可以通过以下几种方式完成,具体选择取决于项目需求和浏览器兼容性要求。 使用Fullscreen API 现代浏览器提供了Fullscreen A…

js  实现全屏

js 实现全屏

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