当前位置:首页 > VUE

vue实现手机全屏

2026-02-19 18:27:32VUE

使用 Vue 实现手机全屏功能

监听屏幕方向变化

通过 screen.orientation API 可以检测屏幕方向变化,结合 CSS 媒体查询实现全屏适配。

mounted() {
  window.addEventListener('orientationchange', this.handleOrientationChange)
  this.handleOrientationChange()
},
methods: {
  handleOrientationChange() {
    const orientation = screen.orientation.type
    console.log('当前屏幕方向:', orientation)
  }
}

全屏 API 调用

现代浏览器提供了全屏 API,可以通过以下方式触发:

methods: {
  requestFullscreen() {
    const element = document.documentElement
    if (element.requestFullscreen) {
      element.requestFullscreen()
    } else if (element.webkitRequestFullscreen) {
      element.webkitRequestFullscreen()
    } else if (element.msRequestFullscreen) {
      element.msRequestFullscreen()
    }
  }
}

退出全屏模式

提供退出全屏的对应方法:

methods: {
  exitFullscreen() {
    if (document.exitFullscreen) {
      document.exitFullscreen()
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen()
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen()
    }
  }
}

全屏状态检测

监听全屏状态变化事件:

vue实现手机全屏

mounted() {
  document.addEventListener('fullscreenchange', this.handleFullscreenChange)
  document.addEventListener('webkitfullscreenchange', this.handleFullscreenChange)
  document.addEventListener('msfullscreenchange', this.handleFullscreenChange)
},
methods: {
  handleFullscreenChange() {
    this.isFullscreen = !!(
      document.fullscreenElement ||
      document.webkitFullscreenElement ||
      document.msFullscreenElement
    )
  }
}

CSS 全屏样式

添加全屏模式下的特殊样式:

:fullscreen, ::backdrop {
  background-color: #000;
}

:-webkit-full-screen {
  background-color: #000;
}

:-ms-fullscreen {
  background-color: #000;
}

移动端 meta 配置

在 HTML 头部添加 viewport 配置:

vue实现手机全屏

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">

横屏锁定(iOS 特殊处理)

iOS 设备需要额外处理横屏锁定:

methods: {
  lockOrientation() {
    if (screen.orientation && screen.orientation.lock) {
      screen.orientation.lock('landscape')
    }
  }
}

安全策略处理

某些浏览器需要用户手势触发全屏,需在按钮点击事件中调用:

<button @click="requestFullscreen">进入全屏</button>

兼容性处理

检测浏览器是否支持全屏 API:

computed: {
  isFullscreenSupported() {
    return (
      document.fullscreenEnabled ||
      document.webkitFullscreenEnabled ||
      document.msFullscreenEnabled
    )
  }
}

标签: 全屏手机
分享给朋友:

相关文章

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

Vue实现网页全屏

Vue实现网页全屏

Vue实现网页全屏的方法 在Vue中实现网页全屏功能可以通过浏览器的全屏API来实现。以下是几种常见的实现方式: 使用原生JavaScript全屏API 浏览器提供了requestFullscree…

vue实现图片全屏显示

vue实现图片全屏显示

实现图片全屏显示的方法 使用全屏API结合Vue指令 Vue可以通过自定义指令封装全屏功能。以下是一个实现图片点击全屏显示的示例代码: <template> <div>…

vue实现组件全屏展示

vue实现组件全屏展示

使用浏览器原生全屏 API 在 Vue 中可以通过调用浏览器的原生全屏 API 实现组件全屏。需要监听用户交互事件(如点击)才能触发全屏,浏览器出于安全考虑禁止自动全屏。 // 在组件方法中实现全屏…

React实现全屏弹窗

React实现全屏弹窗

React 实现全屏弹窗的方法 使用 CSS 样式控制全屏 通过 CSS 设置弹窗的样式,使其覆盖整个视口。以下是一个基本的实现示例: import React, { useState } from…

react实现手机键盘

react实现手机键盘

React 实现手机键盘的方法 在 React 中实现手机键盘可以通过自定义组件或使用第三方库来完成。以下是几种常见的方法: 自定义数字键盘组件 创建一个自定义的数字键盘组件,适用于输入密码、验证码…