指定元素全屏与退出全屏,Vue中处理监听esc并修改data数据(监听与作用域问题)

本文档介绍了在Vue中如何解决全屏状态下esc事件监听的问题。通过自定义方法和事件监听,实现在全屏和非全屏状态下切换按钮样式和提示文字。同时提供了全屏与退出全屏的工具函数,以及在Vue组件中的实际应用案例。
摘要由CSDN通过智能技术生成

一、效果

  • 解决的问题:vue本身监听不到全屏状态中的esc事件,导致无法修改这个按钮的样式icontooltip

未全屏时:
在这里插入图片描述
全屏时:
在这里插入图片描述

二、解决思路

  • 一个重要方法:判断当前是否全屏

问题:如果vue本身的话,在esc事件时是不会调用这个方法的

/**

  • 浏览器当前是否全屏
  • @return {*|boolean}
    */
    export function isFullScreen() {
    return document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen
    }
  • 于是:通过js来监听(并获取vue实例来修改data
updated() {
   
      	// 作用域this===获取vue的实例
        const that = this
      	window.addEventListener('resize', function () {
   
		//如果直接在这里面使用this关键字,==结果是使用window这个对象
            // debugger
            if (!isFullScreen()) {
   
                // 全屏下按键esc后要执行的动作
                // isclick 为true 此时为全屏状态  false 为非全屏状态
                if(!isFullScreen()) {
   
                    // console.log('按下esc键退出全屏', that)
                    that.isFullScreen = false
                }
            }
    });

    }

三、全屏与退出全屏(工具)

  • 工具bom.js中的方法
    引入使用即可:全屏时需要指定一个el元素,默认是全部,需要自己制定

比如我是随便定义一个id,再使用fullScreen(document.getElementById('test'))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值