简洁实用的JavaScript代码示例:开启全屏和退出全屏操作

简介: 在项目中出现了一个需求,需要实现将页面投屏到屏幕上,并能够进行开启全屏和退出全屏的操作。尽管网上有许多第三方开源库可供使用,但由于后续业务场景的不确定性,修改源代码可能带来较大的成本和风险。鉴于全屏功能的实现并不复杂,因此我自己封装了一个解决方案。

背景

在项目中出现了一个需求,需要实现将页面投屏到屏幕上,并能够进行开启全屏和退出全屏的操作。

尽管网上有许多第三方开源库可供使用,但由于后续业务场景的不确定性,修改源代码可能带来较大的成本和风险。鉴于全屏功能的实现并不复杂,因此我自己封装了一个解决方案。

现在,我将这个自封装的代码分享给大家,可以直接拷贝并使用。

废话不多说,直接上代码

html

<div id="root" style="width: 200px;height: 200px;background-color: gray;">
    全屏操作
    <button id="openScreen">开启全屏</button>
    <button id="closeScreen">退出全屏</button>
</div>

js

function ScreenFull(id) {
   
    this.status = false;
    this.el = document.getElementById(id);
}

ScreenFull.prototype.open = function(cb) {
   
    this.status = false;
    this.fullScreen();
    cb(this.status)
}

ScreenFull.prototype.close = function(cb) {
   
    var _this = this;
    _this.status = true;
    _this.fullScreen();
    cb(this.status)
}

ScreenFull.prototype.fullScreen = function() {
   
    if (this.status) {
   
        if (document.exitFullscreen) {
   
            document.exitFullscreen();
        } else if (document.webkitCancelFullScreen) {
    //Chrome等
            document.webkitCancelFullScreen();
        } else if (document.mozCancelFullScreen) {
    //FireFox
            document.mozCancelFullScreen();
        } else if (document.msExitFullscreen) {
    // IE11
            document.msExitFullscreen();
        }
    } else {
   
        if (this.el.requestFullscreen) {
   
            this.el.requestFullscreen();
        } else if (this.el.webkitRequestFullScreen) {
    //Chrome等
            this.el.webkitRequestFullScreen();
        } else if (this.el.mozRequestFullScreen) {
    //FireFox
            this.el.mozRequestFullScreen();
        } else if (this.el.msRequestFullscreen) {
    // IE11
            this.el.msRequestFullscreen();
        }
    }
    this.status = !this.status;
}

var screenFull = new ScreenFull("root");

var openScreen = document.getElementById("openScreen");
// 开启全屏
openScreen.addEventListener('click', function(){
   
    screenFull.open(function(status) {
   
        console.log('openScreen status', status)
    });
})
var closeScreen = document.getElementById("closeScreen");
// 退出全屏
closeScreen.addEventListener('click', function(){
   
    screenFull.close(function(status) {
   
        console.log('closeScreen status', status)
    });
})

结语

感谢您的阅读!希望本文带给您有价值的信息。

如果对您有帮助,请「点赞」支持,并「关注」我的主页获取更多后续相关文章。同时,也欢迎「收藏」本文,方便以后查阅。

写作不易,我会继续努力,提供有意义的内容。感谢您的支持和关注!

目录
相关文章
|
11天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
5天前
|
JavaScript 前端开发
javascript操作BOM的方法
javascript操作BOM的方法
13 0
|
1天前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
6 2
|
2天前
|
JavaScript 前端开发 测试技术
编写JavaScript模块化代码主要涉及将代码分割成不同的文件或模块,每个模块负责处理特定的功能或任务
【5月更文挑战第10天】编写JavaScript模块化代码最佳实践:使用ES6模块或CommonJS(Node.js),组织逻辑相关模块,避免全局变量,封装细节。利用命名空间和目录结构,借助Webpack处理浏览器环境的模块。编写文档和注释,编写单元测试以确保代码质量。通过这些方法提升代码的可读性和可维护性。
8 3
|
2天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
10 3
|
2天前
|
Web App开发 JavaScript 前端开发
javascript操作DIV总结 转
javascript操作DIV总结 转
|
2天前
|
JavaScript
js实现全屏功能——易懂版
js实现全屏功能——易懂版
6 0
|
5天前
|
JavaScript 前端开发 安全
javascript操作DOM的方法
javascript操作DOM的方法
11 0
|
5天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
13 0
|
5天前
|
JavaScript 前端开发 索引
js操作字符串的方法
js操作字符串的方法
14 2