当前位置:首页 > VUE

vue 实现全屏

2026-01-07 21:12:43VUE

Vue 实现全屏功能

在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案:

安装依赖(可选)

如果需要跨浏览器兼容性更好,可以安装 screenfull 库:

npm install screenfull

基础实现(原生 API)

<template>
  <div>
    <button @click="toggleFullscreen">切换全屏</button>
    <div ref="fullscreenElement">需要全屏显示的内容</div>
  </div>
</template>

<script>
export default {
  methods: {
    toggleFullscreen() {
      const element = this.$refs.fullscreenElement;
      if (!document.fullscreenElement) {
        element.requestFullscreen().catch(err => {
          console.error(`全屏错误: ${err.message}`);
        });
      } else {
        document.exitFullscreen();
      }
    }
  }
};
</script>

使用 screenfull 库

<template>
  <div>
    <button @click="toggleFullscreen">切换全屏</button>
    <div ref="fullscreenElement">需要全屏显示的内容</div>
  </div>
</template>

<script>
import screenfull from 'screenfull';

export default {
  methods: {
    toggleFullscreen() {
      if (screenfull.isEnabled) {
        screenfull.toggle(this.$refs.fullscreenElement);
      }
    }
  }
};
</script>

监听全屏状态变化

<script>
export default {
  mounted() {
    document.addEventListener('fullscreenchange', this.handleFullscreenChange);
  },
  beforeDestroy() {
    document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
  },
  methods: {
    handleFullscreenChange() {
      console.log('全屏状态:', !!document.fullscreenElement);
    }
  }
};
</script>

样式调整

全屏模式下可能需要特殊样式:

:-webkit-full-screen {
  width: 100%;
  height: 100%;
  background: white;
}

:-moz-full-screen {
  width: 100%;
  height: 100%;
  background: white;
}

:-ms-fullscreen {
  width: 100%;
  height: 100%;
  background: white;
}

:fullscreen {
  width: 100%;
  height: 100%;
  background: white;
}

浏览器兼容性说明

  • 现代浏览器都支持 Fullscreen API
  • 不同浏览器可能需要前缀(如 webkit、moz)
  • iOS Safari 支持有限
  • screenfull 库会自动处理这些兼容性问题

以上方法可以根据项目需求选择使用原生 API 或第三方库实现全屏功能。

vue 实现全屏

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

相关文章

vue实现倒计时

vue实现倒计时

Vue 实现倒计时的基本方法 使用 setInterval 和响应式数据 在 Vue 组件中定义一个响应式变量(如 countdown),通过 setInterval 每秒更新数值。组件销毁时清除…

vue实现文字

vue实现文字

Vue 中实现文字显示的方法 在 Vue 中实现文字显示可以通过多种方式,包括插值表达式、指令、组件等。以下是几种常见的实现方法: 插值表达式 使用双大括号 {{ }} 进行文本插值,这是 Vue…

vue 实现遮罩

vue 实现遮罩

Vue 实现遮罩层的方法 使用固定定位和透明背景 在Vue中实现遮罩层可以通过CSS固定定位结合透明背景色完成。创建一个全屏遮罩组件,利用position: fixed覆盖整个视窗。 <te…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 El…

vue实现Pop

vue实现Pop

Vue 实现 Popover 组件的方法 使用 Vue 内置指令 v-show/v-if 和事件监听 通过 Vue 的指令和事件绑定实现基础的 Popover 功能。定义一个布尔值控制 Popover…