当前位置:首页 > 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>

样式调整

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

vue 实现全屏

:-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 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery 或…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue实现换肤

vue实现换肤

使用 CSS 变量实现换肤 在 Vue 项目中,可以通过 CSS 变量(Custom Properties)动态切换主题色。CSS 变量可以在运行时修改,适合实现换肤功能。 定义全局 CSS 变量:…

vue 实现排序

vue 实现排序

Vue 实现排序的方法 使用计算属性实现排序 通过计算属性对数组进行排序,可以保持原始数据不变。示例代码展示了如何对列表按名称升序排序: <template> <div>…

vue实现联动

vue实现联动

Vue 实现联动效果 联动效果通常指多个组件或表单元素之间相互影响,例如选择省份后动态加载城市列表。Vue 提供了多种方式实现联动,包括数据绑定、计算属性、侦听器等。 数据驱动联动 通过 Vue 的…

vue下载实现

vue下载实现

Vue 下载实现方法 在 Vue 项目中实现文件下载功能可以通过多种方式完成,以下是几种常见的方法: 使用 <a> 标签实现下载 通过动态创建 <a> 标签并设置 href…