当前位置:首页 > VUE

vue 实现全屏

2026-01-12 23:25:23VUE

Vue 实现全屏的方法

使用浏览器原生 API

现代浏览器提供了 requestFullscreen API 来实现全屏功能。在 Vue 中可以通过调用该 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();
  }
}

封装为 Vue 指令

可以将全屏功能封装为 Vue 指令,方便在组件中使用。

vue 实现全屏

// 注册全局指令
Vue.directive('fullscreen', {
  bind(el, binding) {
    el.addEventListener('click', () => {
      if (binding.value) {
        enterFullscreen(el);
      } else {
        exitFullscreen();
      }
    });
  }
});

// 在模板中使用
<button v-fullscreen="true">进入全屏</button>
<button v-fullscreen="false">退出全屏</button>

使用第三方库

可以使用 screenfull 这样的第三方库简化全屏操作,该库提供了跨浏览器的全屏 API 封装。

安装 screenfull

vue 实现全屏

npm install screenfull

在 Vue 中使用:

import screenfull from 'screenfull';

export default {
  methods: {
    toggleFullscreen() {
      if (screenfull.isEnabled) {
        screenfull.toggle();
      }
    }
  }
};

监听全屏状态变化

可以监听全屏状态的变化,以便在 UI 上做出相应调整。

mounted() {
  document.addEventListener('fullscreenchange', this.handleFullscreenChange);
},
beforeDestroy() {
  document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
},
methods: {
  handleFullscreenChange() {
    this.isFullscreen = !!document.fullscreenElement;
  }
}

注意事项

  • 全屏 API 必须在用户交互(如点击事件)中触发,否则会被浏览器阻止。
  • 不同浏览器可能需要不同的前缀(如 webkit, ms)。
  • 全屏状态可以通过 document.fullscreenElement 检查。

标签: 全屏vue
分享给朋友:

相关文章

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 meth…

vue 实现简单登陆

vue 实现简单登陆

以下是一个使用 Vue 3 实现的简单登录功能示例,包含表单验证和基础交互逻辑: 创建 Vue 组件 <template> <div class="login-contain…

vue实现多用户登录

vue实现多用户登录

实现多用户登录的基本思路 在Vue中实现多用户登录通常需要结合后端API完成身份验证,并通过前端路由、状态管理(如Vuex或Pinia)和本地存储(如localStorage)来管理用户会话。以下是关…

用vue实现滑动输入条

用vue实现滑动输入条

使用 Vue 实现滑动输入条 使用原生 HTML5 input range 实现 在 Vue 模板中直接使用 <input type="range">,通过 v-model 绑定数据:…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue tag实现

vue tag实现

Vue 标签实现方法 在 Vue 中实现标签功能可以通过多种方式完成,常见场景包括动态标签生成、标签输入框、标签管理等。以下是几种典型实现方案: 动态标签列表渲染 使用 v-for 指令渲染标签…