Vue实现点击按钮全屏

记录本次修复项目中点击按钮全屏功能,F11全屏后点击按钮退出全屏失效的问题。
templete 代码

<template>
  <div>
    <i class="icon-fullscreen" @click="toggleFullscreen"></i>
  </div>
</template>

js 代码

methods: {
	toggleFullscreen() {
		let _this = this;
		let el = document.documentElement;
		if (document.fullscreenElement === null) {
			_this.openFullscreen(el);
		} else {
			_this.quitFullscreen();
		}
	},
	openFullscreen(element) {
		if (element.requestFullscreen) {
			element.requestFullscreen();
		} else if (element.webkitRequestFullScreen) {
			element.webkitRequestFullScreen();
		} else if (element.mozRequestFullScreen) {
			element.mozRequestFullScreen();
		} else if (element.msRequestFullscreen) {
			// IE11
			element.msRequestFullscreen();
		}
	},
	quitFullscreen() {
		if (document.exitFullscreen) {
			document.exitFullscreen();
		} else if (document.webkitCancelFullScreen) {
			document.webkitCancelFullScreen();
		} else if (document.mozCancelFullScreen) {
			document.mozCancelFullScreen();
		} else if (document.msExitFullscreen) {
			document.msExitFullscreen();
		}
	},
	getKeyDown(e) {
		let _this = this;
		if (event.keyCode === 122) {
			event.preventDefault() || (event.returnValue = false);
			_this.toggleFullscreen(); // 触发全屏的按钮
		} else if (event.keyCode === 27) {
			if (document.fullscreenElement !== null) {
				_this.quitFullScreen();
			}
		}
	}
},
mounted() {
	window.addEventListener("keydown", this.getKeyDown);
}

document.fullscreenElement 返回当前以全屏模式显示的元素。
如果没有使用全屏模式显示的元素,此属性返回 null 。

期间也有尝试过监听 keyup 事件,但是依然不好使,不知道是什么原因。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值