esc键退出全屏 vue_vue项目实现全屏,退出全屏,图标切换的解决方案

vue项目实现全屏,退出全屏,图标切换的解决方案

vue项目点击按钮实现全屏很容易,点击按钮退出全屏也很容易。

fullScreen(){

var element=document.documentElement;

if (element.requestFullscreen) {

element.requestFullscreen();

} else if (element.msRequestFullscreen) {

element.msRequestFullscreen();

} else if (element.mozRequestFullScreen) {

element.mozRequestFullScreen();

} else if (element.webkitRequestFullscreen) {

element.webkitRequestFullscreen();

}

},

exitFullScreen(){

if (document.exitFullscreen) {

document.exitFullscreen();

} else if (document.msExitFullscreen) {

document.msExitFullscreen();

} else if (document.mozCancelFullScreen) {

document.mozCancelFullScreen();

} else if (document.webkitExitFullscreen) {

document.webkitExitFullscreen();

};

}

现在的问题是:退出全屏有多种方式:有通过点击退出全屏按钮,有按Esc键,还有鼠标移动到中间顶部显示的那个关闭按钮 ,我们的要求是退出全屏要变换图标和显示的字。

解决方法:监听屏幕变化,一旦变化变判断是否全屏,从而实现图标正常切换。

一:下载引入screenfull 插件

npm install screenfull --save

//在调用全屏功能的组件中引入

import screenfull from 'screenfull'

1234

二:定义全屏切换函数

toggleFullscreen () {

if(!screenfull.isEnabled){ //判断一下浏览器是否支持全屏显示

this.$message({

message:'浏览器不能全屏',

type:'warning'

})

return false

}

screenfull.toggle() //进行全屏切换

},

12345678910

三:调用切换全屏函数

123456

四:监听窗口大小变化,判断是否全屏

// 监听窗口大小改变,screenfull.isFullscreen的值为是否全屏,若是则true,反之false

window.onresize = () => {

this.isScreenFull = screenfull.isFullscreen

}

完整代码:

import screenfull from 'screenfull' //全屏功能

export default {

data () {

return {

isScreenFull:false //是否全屏

}

},

mounted () {

// 监听窗口大小改变,screenfull.isFullscreen的值为是否全屏,若是则true,反之false

window.onresize = () => {

this.isScreenFull = screenfull.isFullscreen

}

},

methods: {

toggleFullscreen () {

if(!screenfull.isEnabled){ //判断一下浏览器是否支持全屏显示

this.$message({

message:'浏览器不能全屏',

type:'warning'

})

return false

}

screenfull.toggle()

},

},

}

上一篇:vue中如何使用延时加载,import的重要作用   下一篇:vue中store.state、$store.state和this.$store.state的适用场景

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值