当前位置:首页 > 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 事件监听全屏状态变化,兼容不同浏览器的事件名称。

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 方法退出全屏,同样需处理浏览器前缀。

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 元素(如视频或容器)设置为全屏目标。

js实现全屏功能

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

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

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…

vue各种功能实现

vue各种功能实现

Vue 基础功能实现 数据绑定与响应式更新 使用 v-model 实现表单元素与数据的双向绑定,数据变更自动更新视图。 示例: <input v-model="message"> &…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

vue实现预览功能

vue实现预览功能

Vue 实现文件预览功能 使用 FileReader 实现本地文件预览 通过 HTML5 的 FileReader API 可以读取本地文件内容并显示预览。创建一个文件上传组件,监听 change…

vue实现全屏显示

vue实现全屏显示

Vue 实现全屏显示的方法 在 Vue 项目中实现全屏功能可以通过浏览器的 Fullscreen API 完成。以下是具体实现方式: 使用原生 Fullscreen API 检查浏览器是否支持全屏功…