vue实现全屏切换(F11键)

751 阅读1分钟

全屏切换按钮:

<div @click="handleFullScreen">
    {{this.fullscreen ? '退出全屏':'全屏'}}
</div>

data() {
    return {
        fullscreen: false, // 是否全屏
        teleport: true, 
        pageOnly: false,
    };
},

解决方案一:用原生的js完成

handleFullScreen(){
    let element = document.documentElement;
    // 判断是否已经是全屏,如果是全屏,退出
    if (this.fullscreen) {
        if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        } else if (document.exitFullscreen) {
            document.exitFullscreen();
        }
    } else {
        // 否则,进入全屏
        if (element.webkitRequestFullScreen) {
            element.webkitRequestFullScreen();
        } else if (element.mozRequestFullScreen) {
            //火狐
            element.mozRequestFullScreen();
        } else if (element.msRequestFullscreen) {
            // IE11
            element.msRequestFullscreen();
        } else if (element.requestFullscreen) {
            // w3c
            element.requestFullscreen();
        }
    }
    this.fullscreen = !this.fullscreen;
}

解决方案二:用插件vue-fullscreen完成

步骤一:先安装插件

npm install vue-fullscreen

步骤二:以api方式使用

import { api as fullscreen } from 'vue-fullscreen'

文档链接:www.npmjs.com/package/vue…

async handleFullScreen(){
    await fullscreen.toggle(
        this.$el.querySelector(".ordebox"),
        {
            teleport: this.teleport,
            callback: (isFullscreen) => {
                this.fullscreen = isFullscreen;
            },
        },
    );
    this.fullscreen = fullscreen.isFullscreen;
}