vue点击使用全屏(记录备份一下)

<div class="quanp-txt" @click="screen">{{qpTxt}}</div>

data:

fullscreen:false,

qpTxt: '全屏',

method 里面:

screen(){

                // let element = document.documentElement;//设置后就是我们平时的整个页面全屏效果

                let element = document.getElementById('quanp');//设置后就是 id=* 的容器全屏

                if (this.fullscreen) {

                    // 如果已经全屏了就退出全屏

                    if (document.exitFullscreen) {

                            document.exitFullscreen();

                        }

                    else if (document.webkitCancelFullScreen) {

                            document.webkitCancelFullScreen();

                        } else if (document.mozCancelFullScreen) {

                            document.mozCancelFullScreen();

                        } else if (document.msExitFullscreen) {

                            document.msExitFullscreen();

                    }

                    this.qpTxt = '全屏'

                    this.fullscreen = false

                } else {

                    // 如果不是全屏就变成全屏

                    if(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();

                        }

                        this.qpTxt = '退出全屏'

                        this.fullscreen = true;

                    }

                }

        },

使用全屏遇到的问题:项目使用的是vue+element  导致dialog失效

修改为div自己写一个样式即可:

tanchuang{

        position: fixed;

        top: 30%;

        left: 20%;

        width: 60%;

        height: auto;

        padding: 1.2% 3%;

        background: rgba(6,69,115,0.68);

        box-shadow: 4px 0px 16px 0px rgba(22,26,52,0.89);

        color: #fff;

    }

全屏时滚动条失效,解决方案给内部内容块增加滚动条 设置样式为透明:

.gdt{

        height: 70vh;

        overflow-y: scroll;

        overflow-x: hidden;

    }

    .gdt::-webkit-scrollbar{

        width:0px;

        height:auto;

        background-color: rgba(255, 255, 255, 0);

        border-radius: 4px;

    }

    .gdt::-webkit-scrollbar-track{

        background: rgba(255, 255, 255, 0);

        border-radius:4px;

    }

    .gdt::-webkit-scrollbar-thumb{

        background: rgba(255, 255, 255, 0);

        border-radius:4px;

    }

    .gdt::-webkit-scrollbar-thumb:hover{

        background: rgba(255, 255, 255, 0);

    }

    .gdt::-webkit-scrollbar-corner{

        background: rgba(255, 255, 255, 0);

    }

全屏时el-select下拉失效,解决:

<el-select

                                filterable

                                v-model="queryParams.deptId"

                                placeholder="请选择"

                                :popper-append-to-body="false" //增加这一个即可解决

                                >

全屏时检测键盘esc退出及点击顶部叉号退出全屏:

methods中写判断是否全屏的方法:

checkFull(){

            //判断浏览器是否处于全屏状态 (需要考虑兼容问题)

            //火狐浏览器

            var isFull = document.mozFullScreen||

            document.fullScreen ||

            //谷歌浏览器及Webkit内核浏览器

            document.webkitIsFullScreen ||

            document.webkitRequestFullScreen ||

            document.mozRequestFullScreen ||

            document.msFullscreenEnabled

            if(isFull === undefined) {

                isFull = false

            }

            return isFull;

   

        },

在监听:

updated() {

        // 作用域this===获取vue的实例

        const that = this

        window.addEventListener('resize', function () {

        //如果直接在这里面使用this关键字,==结果是使用window这个对象

            // debugger

            if (!that.checkFull()) {

                // 全屏下按键esc后要执行的动作

                // isclick 为true 此时为全屏状态  false 为非全屏状态

                if(!that.checkFull()) {

                    that.qpTxt = '全屏'

                    that.fullscreen = false

                }

            }

        });

    },

以上就是自己在做点击全屏时所遇到的问题以及解决方法,记录一下~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值