当前位置:首页 > HTML

h5实现全屏

2026-01-16 16:52:05HTML

全屏 API 的基本使用

HTML5 提供了 requestFullscreen API 来实现全屏功能。现代浏览器都支持这一特性,但不同浏览器可能需要添加前缀。

// 触发全屏
function enterFullscreen(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 事件来检测全屏状态的变化。

h5实现全屏

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 为元素添加特殊样式。

#fullscreenElement:-webkit-full-screen {
  background: black;
  color: white;
}

#fullscreenElement:-ms-fullscreen {
  background: black;
  color: white;
}

#fullscreenElement:fullscreen {
  background: black;
  color: white;
}

移动端注意事项

移动设备上全屏行为可能与桌面端不同,部分浏览器可能不支持或有限制。iOS Safari 对全屏 API 的支持有限,Android Chrome 通常表现良好。

h5实现全屏

兼容性处理

为了确保跨浏览器兼容性,建议使用特性检测并封装成通用函数。

function toggleFullscreen(element) {
  const isFullscreen = document.fullscreenElement || 
                      document.webkitFullscreenElement || 
                      document.msFullscreenElement;

  if (!isFullscreen) {
    if (element.requestFullscreen) {
      element.requestFullscreen();
    } else if (element.webkitRequestFullscreen) {
      element.webkitRequestFullscreen();
    } else if (element.msRequestFullscreen) {
      element.msRequestFullscreen();
    }
  } else {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen();
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    }
  }
}

用户交互要求

大多数浏览器要求全屏操作必须由用户手势触发,比如点击事件。不能通过异步回调或自动执行的方式调用全屏 API。

<button onclick="toggleFullscreen(document.documentElement)">
  切换全屏
</button>

标签: 全屏
分享给朋友:

相关文章

vue实现页面全屏

vue实现页面全屏

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

vue实现全屏截图

vue实现全屏截图

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

vue实现pc全屏滚动

vue实现pc全屏滚动

实现PC全屏滚动的Vue方案 全屏滚动效果通常指页面按整屏高度分块,滚动时自动吸附到最近的区块。以下是基于Vue的实现方法: 使用vue-fullpage.js库 安装vue-fullpage.js…

vue动画实现全屏滚动

vue动画实现全屏滚动

实现全屏滚动动画的Vue方案 使用vue-fullpage.js插件 安装vue-fullpage.js插件能快速实现全屏滚动效果: npm install vue-fullpage.js 注册插件…

react 实现指定组件全屏

react 实现指定组件全屏

使用 React 实现组件全屏功能 原生全屏 API 方法 React 中可以通过调用浏览器的原生全屏 API 实现组件全屏。需要获取 DOM 元素的引用并使用 requestFullscreen 方…

react 实现页面多个全屏

react 实现页面多个全屏

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