当前位置:首页 > HTML

h5 实现全屏

2026-03-06 14:47:27HTML

全屏 API 的基本使用

HTML5 提供了全屏 API,允许网页元素或整个页面进入全屏模式。现代浏览器均支持该功能,但需要处理不同浏览器的前缀差异。

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

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

监听全屏状态变化

通过 fullscreenchange 事件可以检测全屏状态的切换。需注意不同浏览器的事件名称差异。

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
document.addEventListener('msfullscreenchange', handleFullscreenChange);

function handleFullscreenChange() {
  const isFullscreen = document.fullscreenElement || 
                      document.webkitFullscreenElement || 
                      document.msFullscreenElement;
  console.log(isFullscreen ? '进入全屏' : '退出全屏');
}

全屏样式调整

在全屏模式下,CSS 伪类 :fullscreen 可以针对全屏元素应用特殊样式。需添加浏览器前缀兼容。

:-webkit-full-screen {
  background-color: white;
}

:-ms-fullscreen {
  background-color: white;
}

:fullscreen {
  background-color: white;
}

按钮触发示例

通过按钮控制全屏状态的典型实现方式。建议对不支持全屏的浏览器提供回退提示。

<button id="fullscreen-btn">切换全屏</button>
<script>
  const btn = document.getElementById('fullscreen-btn');
  btn.addEventListener('click', () => {
    if (!document.fullscreenElement) {
      requestFullscreen(document.documentElement);
    } else {
      exitFullscreen();
    }
  });
</script>

移动端注意事项

移动设备浏览器可能对全屏模式有特殊限制。iOS Safari 需要用户手势触发,部分安卓浏览器可能不支持 API。

// 确保在用户交互事件中触发
document.addEventListener('touchstart', () => {
  requestFullscreen(document.documentElement);
}, { once: true });

安全限制

浏览器要求全屏操作必须由用户交互(如点击事件)直接触发,脚本自动调用会被阻止。控制台直接调用 API 通常无效。

h5 实现全屏

// 错误示例:非交互式调用会被阻止
setTimeout(() => {
  requestFullscreen(document.documentElement); // 无效
}, 1000);

标签: 全屏
分享给朋友:

相关文章

vue实现全屏滚动

vue实现全屏滚动

Vue 实现全屏滚动的方法 全屏滚动效果可以通过多种方式实现,以下是几种常见的方法: 使用 vue-fullpage.js vue-fullpage.js 是一个基于 fullPage.js 的 V…

vue实现全屏事件

vue实现全屏事件

Vue 实现全屏事件的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 Ele…

h5实现全屏

h5实现全屏

全屏 API 的基本使用 HTML5 提供了 requestFullscreen API 来实现全屏功能。现代浏览器都支持这一特性,但不同浏览器可能需要添加前缀。 // 触发全屏 function…

vue实现页面全屏

vue实现页面全屏

Vue 实现页面全屏的方法 使用浏览器原生 Fullscreen API 在 Vue 中可以通过调用浏览器的原生 Fullscreen API 实现全屏功能。以下是一个简单的实现示例: // 在 V…

vue实现全屏截图

vue实现全屏截图

实现全屏截图的方法 在Vue中实现全屏截图,可以通过第三方库或原生API完成。以下是几种常见的方法: 使用html2canvas库 安装html2canvas库: npm install…

vue点击局部实现全屏

vue点击局部实现全屏

实现局部全屏的方法 在Vue中实现局部全屏可以通过浏览器的Fullscreen API来完成。以下是一个完整的实现方案。 安装依赖 确保项目环境中已经安装了Vue。如果使用Vue 3,可以通过以下命…