简洁实用的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)
    });
})

结语

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

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

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

目录
相关文章
|
7天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
1天前
|
JavaScript 前端开发 安全
javascript操作DOM的方法
javascript操作DOM的方法
|
1天前
|
JavaScript 前端开发
javascript操作BOM的方法
javascript操作BOM的方法
|
1天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
7 0
|
1天前
|
JavaScript 前端开发 索引
js操作字符串的方法
js操作字符串的方法
9 2
|
7天前
|
JavaScript 前端开发 开发工具
【JavaScript 与 TypeScript 技术专栏】TypeScript 如何提升 JavaScript 代码的可读性与可维护性
【4月更文挑战第30天】TypeScript 提升 JavaScript 代码的可读性和可维护性,主要通过静态类型系统、增强代码组织、智能提示与错误检测、文档化和在大型项目中的优势。静态类型减少误解,类和接口提供结构,智能提示提高编码效率,类型注解充当内置文档。在大型项目中,TypeScript 降低理解差异,平滑迁移现有 JavaScript 项目,助力提高开发效率和项目质量。
|
8天前
|
存储 缓存 JavaScript
【Web 前端】JS哪些操作会造成内存泄露?
【4月更文挑战第22天】【Web 前端】JS哪些操作会造成内存泄露?
|
12天前
|
JavaScript 前端开发
js操作字符串的相关方法
js操作字符串的相关方法
9 3
|
12天前
|
JavaScript 前端开发
js 操作数组的方法
js 操作数组的方法
21 4
|
12天前
|
JavaScript
js_操作dom(委托和冒泡事件)
js_操作dom(委托和冒泡事件)
15 0