当前位置:首页 > VUE

vue页面实现全屏功能

2026-02-21 10:16:07VUE

Vue 页面实现全屏功能

使用浏览器原生全屏 API

通过调用 document.documentElement.requestFullscreen() 方法实现全屏,兼容不同浏览器前缀:

// 进入全屏
function enterFullscreen() {
  const element = document.documentElement;
  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();
  }
}

监听全屏状态变化

通过 fullscreenchange 事件监听全屏状态变化:

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
document.addEventListener('msfullscreenchange', handleFullscreenChange);

function handleFullscreenChange() {
  const isFullscreen = document.fullscreenElement || 
                      document.webkitFullscreenElement || 
                      document.msFullscreenElement;
  console.log('全屏状态:', isFullscreen ? '已全屏' : '已退出');
}

使用第三方库简化操作

安装 screenfull 库简化全屏操作:

npm install screenfull

在 Vue 组件中使用:

import screenfull from 'screenfull';

export default {
  methods: {
    toggleFullscreen() {
      if (screenfull.isEnabled) {
        screenfull.toggle();
      } else {
        console.warn('浏览器不支持全屏功能');
      }
    }
  }
}

组件封装示例

封装可复用的全屏按钮组件:

vue页面实现全屏功能

<template>
  <button @click="toggleFullscreen">
    {{ isFullscreen ? '退出全屏' : '进入全屏' }}
  </button>
</template>

<script>
import screenfull from 'screenfull';

export default {
  data() {
    return {
      isFullscreen: false
    };
  },
  mounted() {
    if (screenfull.isEnabled) {
      screenfull.on('change', () => {
        this.isFullscreen = screenfull.isFullscreen;
      });
    }
  },
  methods: {
    toggleFullscreen() {
      if (screenfull.isEnabled) {
        screenfull.toggle();
      }
    }
  }
};
</script>

注意事项

  • 全屏 API 必须在用户交互事件(如点击)中触发,不能自动调用
  • 不同浏览器可能需要不同前缀(如 webkit, ms
  • 移动端浏览器对全屏支持有限,需测试目标平台兼容性
  • 全屏状态下部分浏览器会隐藏地址栏和工具栏

标签: 全屏页面
分享给朋友:

相关文章

h5页面实现vr

h5页面实现vr

实现H5页面VR效果的方法 在H5页面中实现VR(虚拟现实)效果,可以通过以下几种技术方案实现: 使用WebVR API WebVR是一个实验性的JavaScript API,提供了访问VR设备的功…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

vue实现页面分页

vue实现页面分页

Vue实现页面分页的方法 使用Element UI的分页组件 Element UI提供了现成的分页组件el-pagination,适合快速集成。以下是一个示例代码: <template>…

h5实现页面3d切换

h5实现页面3d切换

使用CSS 3D变换实现基础效果 在HTML5中实现3D页面切换,可以通过CSS的transform属性结合3D变换函数。创建一个包含多个页面的容器,通过调整transform-style和persp…

vue实现页面僵住

vue实现页面僵住

Vue 页面卡顿的可能原因及解决方案 页面卡顿通常由性能瓶颈或代码逻辑问题导致。以下列举常见原因及优化方法: 大量数据渲染导致卡顿 Vue 的响应式系统会对数据进行深度监听,当数据量过大时可能导致渲…

css制作页面

css制作页面

使用CSS制作页面的基本方法 CSS(层叠样式表)用于控制网页的样式和布局。通过CSS可以实现页面元素的定位、颜色、字体、间距等视觉效果。 HTML结构基础 在开始CSS之前,需要先构建HTML结构…