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.效果

点击后页面所以全屏显示

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

相关推荐
谷哥的小弟9 小时前
TypeScript对象类型
javascript·typescript
稚南城才子,乌衣巷风流10 小时前
函数:编程中的核心概念
开发语言·前端·javascript
IT_陈寒10 小时前
为什么我的JavaScript异步代码总是不按顺序执行?
前端·人工智能·后端
索西引擎11 小时前
【React】useState 状态更新机制:批量更新策略与“异步“错觉的深层解析
前端·react.js·前端框架
慢功夫11 小时前
💡第五篇:VSCode插件是如何与主进程通信的?
前端·visual studio code
锋行天下11 小时前
打造企业内部知识库系统RAG全栈项目
前端·后端·架构
竹林81811 小时前
用 ethers.js 连接 MetaMask 实现钱包登录:一个真实项目中的完整踩坑记录
前端·javascript
虚惊一场11 小时前
在浏览器里跑 Prettier:格式化 Markdown 的四个难点
前端·javascript·vue.js
前端炒粉12 小时前
手撕小汇总
java·前端·javascript
r_oo_ki_e_12 小时前
vue快速入门
前端·vue.js