当前位置:首页 > JavaScript

js实现全屏功能

2026-02-02 14:40:49JavaScript

使用 requestFullscreen 方法

通过调用元素的 requestFullscreen 方法实现全屏。需注意浏览器兼容性前缀(如 webkitRequestFullscreen)。

const element = document.documentElement; // 全屏整个页面
if (element.requestFullscreen) {
  element.requestFullscreen();
} else if (element.webkitRequestFullscreen) { // Chrome, Safari
  element.webkitRequestFullscreen();
} else if (element.msRequestFullscreen) { // IE/Edge
  element.msRequestFullscreen();
} else if (element.mozRequestFullScreen) { // Firefox
  element.mozRequestFullScreen();
}

监听全屏状态变化

通过 fullscreenchange 事件监听全屏状态变化,兼容不同浏览器的事件名称。

js实现全屏功能

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange); // Chrome, Safari
document.addEventListener('msfullscreenchange', handleFullscreenChange); // IE/Edge
document.addEventListener('mozfullscreenchange', handleFullscreenChange); // Firefox

function handleFullscreenChange() {
  if (document.fullscreenElement || document.webkitFullscreenElement || 
      document.msFullscreenElement || document.mozFullScreenElement) {
    console.log('已进入全屏');
  } else {
    console.log('已退出全屏');
  }
}

退出全屏

调用 document.exitFullscreen 方法退出全屏,同样需处理浏览器前缀。

js实现全屏功能

if (document.exitFullscreen) {
  document.exitFullscreen();
} else if (document.webkitExitFullscreen) { // Chrome, Safari
  document.webkitExitFullscreen();
} else if (document.msExitFullscreen) { // IE/Edge
  document.msExitFullscreen();
} else if (document.mozCancelFullScreen) { // Firefox
  document.mozCancelFullScreen();
}

检查当前全屏状态

通过 document.fullscreenElement 或带前缀的属性判断是否有元素处于全屏状态。

const isFullscreen = document.fullscreenElement || 
                     document.webkitFullscreenElement || 
                     document.msFullscreenElement || 
                     document.mozFullScreenElement;
console.log(isFullscreen ? '全屏中' : '非全屏');

全屏特定元素

将任意 DOM 元素(如视频或容器)设置为全屏目标。

const videoElement = document.getElementById('video');
if (videoElement.requestFullscreen) {
  videoElement.requestFullscreen();
} else if (videoElement.webkitRequestFullscreen) {
  videoElement.webkitRequestFullscreen();
} else if (videoElement.msRequestFullscreen) {
  videoElement.msRequestFullscreen();
} else if (videoElement.mozRequestFullScreen) {
  videoElement.mozRequestFullScreen();
}

注意事项

  • 用户交互触发:大多数浏览器要求全屏操作必须由用户手势(如点击事件)触发,否则会被阻止。
  • CSS 适配:全屏元素可通过 :fullscreen 伪类定制样式,例如:
    :fullscreen {
      background-color: black;
    }
  • 移动端兼容性:部分移动端浏览器可能限制全屏功能。

标签: 全屏功能
分享给朋友:

相关文章

原生实现vue功能

原生实现vue功能

原生JavaScript实现Vue核心功能 使用原生JavaScript模拟Vue的核心功能需要理解响应式数据绑定、虚拟DOM和组件系统等概念。以下是关键实现方法: 响应式数据系统 通过Object…

vue实现分页功能

vue实现分页功能

Vue 分页功能实现 在 Vue 中实现分页功能通常需要结合后端 API 或前端数据分页逻辑。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在 Vue 组件中处理分页逻辑…

vue实现考试多选功能

vue实现考试多选功能

Vue实现考试多选功能 数据绑定与选项渲染 使用v-model绑定用户选择的答案数组,结合v-for循环渲染选项列表。示例代码: <template> <div>…

vue实现账号注册功能

vue实现账号注册功能

实现账号注册功能 在Vue中实现账号注册功能通常需要结合前端表单和后端API交互。以下是一个完整的实现方案: 创建注册表单组件 新建一个Register.vue组件,包含基本的注册表单字段: &l…

vue的艾特功能实现

vue的艾特功能实现

Vue 中的 @ 功能实现 Vue 中的 @ 符号是 v-on 指令的简写,用于绑定事件监听器。以下是具体实现方式: 基本语法 <button @click="handleClick">…

vue实现用户添加功能

vue实现用户添加功能

实现用户添加功能的步骤 表单设计与数据绑定 在Vue组件中设计一个表单,包含用户名、邮箱、密码等字段。使用v-model指令实现双向数据绑定,将表单输入与组件的数据属性关联起来。 <temp…