当前位置:首页 > 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;
    }
  • 移动端兼容性:部分移动端浏览器可能限制全屏功能。

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

相关文章

php购物车功能的实现

php购物车功能的实现

实现购物车功能的基本方法 使用PHP实现购物车功能可以通过会话(Session)或数据库存储购物车数据。以下是两种常见方法的详细说明。 使用Session存储购物车数据 PHP的$_SESSION可…

vue实现筛选功能

vue实现筛选功能

实现筛选功能的基本思路 在Vue中实现筛选功能通常涉及数据绑定、计算属性和方法的使用。通过监听用户输入或选择,动态过滤数据列表。 基础筛选实现 创建一个输入框绑定到Vue实例的data属性,使用计算…

vue导入功能实现

vue导入功能实现

Vue 导入功能实现 在 Vue 项目中实现导入功能通常涉及文件选择、文件解析和数据处理的步骤。以下是常见的实现方式: 使用 input 元素实现文件选择 <template> &l…

vue用户功能实现

vue用户功能实现

Vue 用户功能实现方案 用户登录与认证 使用 Vue Router 和 Vuex 实现用户登录状态管理。前端发送登录请求到后端 API,获取 token 后存储在 localStorage 或 Vu…

vue主要实现功能

vue主要实现功能

响应式数据绑定 Vue 通过数据劫持和发布-订阅模式实现响应式系统。当数据变化时,视图自动更新。核心依赖 Object.defineProperty(Vue 2)或 Proxy(Vue 3)监听数据变…

vue 实现分页功能

vue 实现分页功能

实现分页功能的方法 在Vue中实现分页功能可以通过多种方式完成,以下是一种常见的实现方法: 使用计算属性处理分页数据 通过计算属性对数据进行分页处理,结合分页组件实现交互: <tem…