Vue实现网页全屏
Vue实现网页全屏的方法
使用浏览器原生全屏API
Vue中可以通过调用浏览器原生全屏API实现网页全屏功能。主要使用Element.requestFullscreen()方法进入全屏,document.exitFullscreen()退出全屏。
// 进入全屏
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组件中,可以封装全屏功能为方法,并通过按钮触发。
<template>
<div ref="fullscreenElement">
<button @click="toggleFullscreen">切换全屏</button>
</div>
</template>
<script>
export default {
methods: {
toggleFullscreen() {
if (!document.fullscreenElement) {
this.$refs.fullscreenElement.requestFullscreen()
} else {
document.exitFullscreen()
}
}
}
}
</script>
监听全屏状态变化
可以监听全屏状态变化事件,执行相应操作。

mounted() {
document.addEventListener('fullscreenchange', this.handleFullscreenChange)
},
beforeDestroy() {
document.removeEventListener('fullscreenchange', this.handleFullscreenChange)
},
methods: {
handleFullscreenChange() {
this.isFullscreen = !!document.fullscreenElement
}
}
使用第三方库
可以使用screenfull库简化全屏操作,它处理了浏览器兼容性问题。
安装:

npm install screenfull
使用:
import screenfull from 'screenfull'
methods: {
toggleFullscreen() {
if (screenfull.isEnabled) {
screenfull.toggle(this.$refs.fullscreenElement)
}
}
}
样式调整
全屏模式下可能需要调整元素样式,可以通过CSS伪类:fullscreen实现。
:fullscreen {
background-color: #fff;
}
注意事项
- 全屏API必须在用户交互事件中触发,如点击事件
- 不同浏览器可能需要前缀(webkit, ms)
- iOS Safari对全屏API支持有限






