当前位置:首页 > VUE

vue实现全屏事件

2026-03-08 15:31:16VUE

Vue 实现全屏事件的方法

监听全屏状态变化

使用 document 对象的 fullscreenchange 事件监听全屏状态变化。在 Vue 的 mounted 钩子中添加事件监听,并在 beforeDestroy 钩子中移除。

mounted() {
  document.addEventListener('fullscreenchange', this.handleFullscreenChange);
},
beforeDestroy() {
  document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
},
methods: {
  handleFullscreenChange() {
    if (document.fullscreenElement) {
      console.log('进入全屏');
    } else {
      console.log('退出全屏');
    }
  }
}

进入全屏模式

调用元素的 requestFullscreen 方法实现全屏。推荐指定具体元素(如 this.$refs.container)而非整个文档。

methods: {
  enterFullscreen() {
    const element = this.$refs.container;
    if (element.requestFullscreen) {
      element.requestFullscreen();
    } else if (element.webkitRequestFullscreen) { /* Safari */
      element.webkitRequestFullscreen();
    } else if (element.msRequestFullscreen) { /* IE11 */
      element.msRequestFullscreen();
    }
  }
}

退出全屏模式

通过 document.exitFullscreen 方法退出全屏,需处理不同浏览器的兼容性。

methods: {
  exitFullscreen() {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.webkitExitFullscreen) { /* Safari */
      document.webkitExitFullscreen();
    } else if (document.msExitFullscreen) { /* IE11 */
      document.msExitFullscreen();
    }
  }
}

检测当前全屏状态

通过 document.fullscreenElement 判断是否有元素处于全屏状态,返回 null 表示未全屏。

methods: {
  checkFullscreen() {
    return !!(
      document.fullscreenElement ||
      document.webkitFullscreenElement ||
      document.msFullscreenElement
    );
  }
}

使用第三方库简化操作

安装 screenfull 库可简化跨浏览器全屏操作:

npm install screenfull

示例代码:

vue实现全屏事件

import screenfull from 'screenfull';

methods: {
  toggleFullscreen() {
    if (screenfull.isEnabled) {
      screenfull.toggle(this.$refs.container);
    }
  }
}

注意事项

  • 全屏 API 必须在用户交互(如点击事件)中触发,无法通过异步代码自动调用。
  • 移动端浏览器对全屏的支持有限,需测试目标平台兼容性。
  • CSS 伪类 :fullscreen 可针对全屏状态设置样式。

以上方法覆盖了全屏功能的核心实现,可根据实际需求选择原生 API 或第三方库方案。

标签: 全屏事件
分享给朋友:

相关文章

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

vue实现点击事件

vue实现点击事件

Vue 中实现点击事件的方法 在 Vue 中可以通过 v-on 指令或简写 @ 来绑定点击事件。以下是几种常见的实现方式: 直接在模板中绑定方法 <template> <but…

jquery添加事件

jquery添加事件

jQuery 添加事件的方法 jQuery 提供了多种方法来为元素添加事件监听。以下是一些常用的方式: 使用 .on() 方法 .on() 是 jQuery 中推荐的事件绑定方法,支持直接绑定和委托…

vue实现全选事件

vue实现全选事件

Vue 实现全选事件 在 Vue 中实现全选功能通常涉及以下关键步骤: 数据绑定与状态管理 使用 v-model 绑定复选框的状态,确保数据与视图同步。通常需要一个数组存储选中项和一个布尔值控制全选…

vue 事件实现原理

vue 事件实现原理

Vue 事件实现原理 Vue 的事件系统基于发布-订阅模式,通过 $on、$emit 等方法实现组件间通信。核心原理分为以下几个部分: 事件注册与监听 Vue 实例内部维护一个 _events 对象…

vue门户实现全屏显示

vue门户实现全屏显示

实现全屏显示的方法 在Vue中实现全屏显示可以通过浏览器的Fullscreen API完成。以下是具体实现步骤: 安装screenfull依赖 screenfull是一个跨浏览器的全屏API封装库,…