vue部分/所有内容全屏切换展示

需求:就是把一个页面的某一部分内容点击全屏操作按钮后全屏展示,并非所有内容全屏,所有内容的话那肯定就所有全屏展示啊,可以做切换

1.部分全屏代码

element.requestFullscreen();这个就是全屏的代码了,注意前面的element,这个是获取到需要全屏展示的盒子的id的值。不分全屏只需要获取到需要全屏内容的id值之后进行全屏就可以了

document.exitFullscreen();就是关闭全屏了,分为了不同的浏览器下的全屏和关闭全屏

javascript 复制代码
<template>
    <div class="content-box">
        <div class="container">
            <div id="screen" class="screen">
                部分全屏效果
                <el-button @click="screen()">
                    {{ fullscreen ? '关闭全屏' : '部分全屏' }}
                </el-button>
            </div>
            <span>其他内容不参与全屏</span>
        </div>
    </div>
</template>

<script>
export default {
    data() {
        return {
            fullscreen: false,
        };
    },
    mounted() {},
    methods: {
        screen() {
            let element = document.getElementById('screen');
            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();
                }
            } else {
                // 全屏
                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.fullscreen = !this.fullscreen;
        },
    }
};
</script>

<style lang="scss" scoped>
.screen {
    width: 500px;
    height: 500px;
    background-color: #fff;
    border: 1px solid red;
}
</style>

2.效果

默认效果

点击部分全屏后,不参与全屏的内容不做展示了。可以选择再次点击按钮关闭或者esc键关闭

3.全部全屏代码

javascript 复制代码
<template>
    <div class="content-box">
        <div class="container">
            <div id="screen" class="screen">
                部分全屏效果
                <el-button @click="screen()">
                    {{ fullscreen ? '关闭全屏' : '部分全屏' }}
                </el-button>
            </div>
            <span>其他内容不参与全屏</span>
            <el-button @click="allScreen()">全部内容全屏</el-button>
        </div>
    </div>
</template>

<script>
export default {
    data() {
        return {
            fullscreen: false,
            allfullscreen: false
        };
    },
    mounted() {},
    methods: {
        screen() {

        },
        // 全部内容全屏
        allScreen() {
            this.allfullscreen = !this.allfullscreen;
            // dom对象属性:用于判断是否全屏,如果是全屏那就返回true,不然就是null
            let full = document.fullscreenElement;
            if (!full) {
                // 如果没有全屏,那么就全屏
                document.documentElement.requestFullscreen();
            } else {
                // 退出全屏
                document.exitFullscreen();
            }
        }
    }
};
</script>

<style lang="scss" scoped>
.screen {
    width: 200px;
    height: 200px;
    background-color: #fff;
    border: 1px solid red;
}
</style>

4.效果

点击后页面所以全屏显示

文章到此结束,希望对你有所帮助~

相关推荐
Howrun77714 分钟前
VSCode烦人的远程交互UI讲解
ide·vue.js·vscode
百锦再36 分钟前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君39 分钟前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再39 分钟前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI1 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
颜酱2 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
失忆爆表症3 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui
小迷糊的学习记录3 小时前
Vuex 与 pinia
前端·javascript·vue.js
发现一只大呆瓜3 小时前
前端性能优化:图片懒加载的三种手写方案
前端·javascript·面试
不爱吃糖的程序媛3 小时前
Flutter 与 OpenHarmony 通信:Flutter Channel 使用指南
前端·javascript·flutter