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

点击后页面所以全屏显示

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

相关推荐
sulikey1 分钟前
Qt 入门简洁笔记:从框架概念到开发环境搭建
开发语言·前端·c++·qt·前端框架·visual studio·qt框架
烟袅34 分钟前
JavaScript 变量声明报错指南:var、let、const 常见错误解析
javascript
烟袅35 分钟前
告别 var!深入理解 JavaScript 中 var、let 和 const 的差异与最佳实践
javascript·面试
烛阴37 分钟前
循环背后的魔法:Lua 迭代器深度解析
前端·lua
元拓数智1 小时前
现代前端状态管理深度剖析:从单一数据源到分布式状态
前端·1024程序员节
mapbar_front1 小时前
Electron 应用自动更新方案:electron-updater 完整指南
前端·javascript·electron
天一生水water2 小时前
three.js加载三维GLB文件,查看三维模型
前端·1024程序员节
无风听海2 小时前
HarmonyOS之启动应用内的UIAbility组件
前端·华为·harmonyos
冰夏之夜影2 小时前
【科普】Edge出问题后如何恢复出厂设置
前端·edge
W.Buffer2 小时前
设计模式-单例模式:从原理到实战的三种经典实现
开发语言·javascript·单例模式