js 实现全屏

全屏是否可用:Document.fullscreenEnabled
开启全屏:Document.requestFullScreen() 该方法返回 promise
退出全屏:Document.exitFullscreen() 让当前元素退出全屏模式,会有一个全屏栈
获取元素全屏状态:Document.mozFullScreenElement
全屏模式变化事件: fullscreenchange
参考博客

全屏方法需要用户手动操作的事件触发,如点击等

fullScreen() {
  let el = this.$refs.vbox; // 获取需要全屏的 dom

  /*
  if (el.requestFullscreen) {
    el.requestFullscreen();
  } else if (el.webkitRequestFullScreen) {
    el.webkitRequestFullScreen();
  } else if (el.mozRequestFullScreen) {
    el.mozRequestFullScreen();
  } else if (el.msRequestFullscreen) {
    el.msRequestFullscreen();
  }
  */
  el.requestFullscreen||el.mozRequestFullScreen||el.webkitRequestFullscreen||el.msRequestFullScreen?
  el.requestFullscreen()||el.mozRequestFullScreen()|| el.webkitRequestFullscreen()||el.msRequestFullscreen():null;
  // 可以更新全屏的标志变量
}

这种方案虽然简单,但无法与其他组件内容配合,如抽屉等功能
此 api 在 iPhone 上不受支持

screenfull.js

简化写兼容性方法,浅封装
npm screenfull

useFullscreen

vueuse 提供的全屏功能

单页面应用中

可以有单独的全屏页面,全屏的同时因为是单页面可以兼顾其他组件。不会出现遮挡的情况
确定不能跳转时自动全屏


测试 demo

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>

<body>
	<div id="test" style="width: 200px; height: 100px; background-color: green;" onclick="fullScreen()"></div>
	<script>
		function fullScreen() {
			el = document.getElementById('test')
			el.requestFullscreen || el.mozRequestFullScreen || el.webkitRequestFullscreen || el.msRequestFullScreen ?
				el.requestFullscreen() || el.mozRequestFullScreen() || el.webkitRequestFullscreen() || el.msRequestFullscreen() :
				null;
		}
	</script>
</body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值