全屏模式fullscreen

全屏模式fullscreen全屏模式 fullscreen

参考

  • http://www.cnblogs.com/minghui007/p/5601194.html
  • http://www.cnblogs.com/lfqcode/p/6164001.html

fullscreen API 接口

属性1:fullscreenElement,该属性返回当前处于全屏模式的DOM元素。

属性2:fullscreenEnabled,该属性返回当前 document 是否进入了可以请求全屏模式的状态。

方法1:requestFullscreen(),请求进入全屏模式。

方法2:exitFullscreen(),退出全屏模式。

事件1:fullscreenchange,进入/退出全屏模式切换时会触发。

事件2:fullscreenerror,进入/退出全屏模式失败时会触发。

由于fullscreen API 存在浏览器兼容性问题,所以我们在使用的时候需要进行跨浏览器处理

跨浏览器返回正处于全屏的元素

function fullscreenElement() { var fullscreenEle = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement; //注意:要在用户授权全屏后才能获取全屏的元素,否则 fullscreenEle为null console.log("全屏元素:" + fullscreenEle); return fullscreenEle; }

跨浏览器返回当前 document 是否进入了可以请求全屏模式的状态

function fullscreenEnable() { var isFullscreen = document.fullscreenEnabled || window.fullScreen || document.webkitIsFullScreen || document.msFullscreenEnabled; //注意:要在用户授权全屏后才能准确获取当前的状态 if (isFullscreen) { console.log('全屏模式'); } else { console.log('非全屏模式'); } }

跨浏览器发动全屏

function lanchFullscreen(element) { 
    if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullScreen(); } }

跨浏览器退出全屏

function exitFullscreen() { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.msExitFullscreen) { document.msExiFullscreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } }

各浏览器fullscreenchange 事件处理

document.addEventListener('fullscreenchange', function(){ 
    /*code*/ }); document.addEventListener('webkitfullscreenchange', function(){ 
    /*code*/}); document.addEventListener('mozfullscreenchange', function(){ 
    /*code*/}); document.addEventListener('MSFullscreenChange', function(){ 
    /*code*/});

各浏览器fullscreenerror 事件处理

document.addEventListener('fullscreenerror', function(){ 
    /*code*/ }); document.addEventListener('webkitfullscreenerror', function(){ 
    /*code*/}); document.addEventListener('mozfullscreenerror', function(){ 
    /*code*/); document.addEventListener('MSFullscreenError', function(){ 
    /*code*/ });

跨浏览器全屏模式下样式代码

:-webkit-full-screen { } :-moz-full-screen { } :-ms-fullscreen { } :fullscreen { }

实例代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Full-screen</title> <script SRC="../lib/jquery.min.js"></script> <style> * { margin: 0; padding: 0; } html, body { height: 100%; } .container { width: 100%; height: 100%; background: grey; display: flex; justify-content: center; align-items: center; } :-webkit-full-screen .container { background: red; } .btn { width: 300px; height: 30px; font-size: 16px; } </style> </head> <body> <div class="container"> <button id="btn" class="btn">click</button> </div> <script> var button = document.getElementById('btn'); // 进入全屏 function launchFullScreen(element) { 
     if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullscreen(); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } } // 退出全屏 function exitFullScreen() { 
     if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozExitFullScreen) { document.mozExitFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } } button.onclick = function () { 
     var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;// 判断是否全屏 if (!isFullScreen) { launchFullScreen(document.documentElement); // 整个页面全屏 // launchFullScreen(document.getElementById("btn")); // 某个元素全屏 } else { exitFullScreen(); } var fullScreenElement = document.fullscreenEnabled || document.mozFullscreenElement || document.webkitFullscreenElement; // 当前处于全屏状态的元素 element. var fullScreenEnabled = document.fullscreenEnabled || document.mozFullscreenEnabled || document.webkitFullscreenEnabled; // 标记 fullScreen 当前是否可用. console.log(fullScreenElement); console.log(fullScreenEnabled) }; document.addEventListener('fullscreenchange', function () { 
     alert(123) }); document.addEventListener('webkitfullscreenchange', function () { 
     alert(123) }); document.addEventListener('mozfullscreenchange', function () { 
     alert(123) }); document.addEventListener('MSFullscreenChange', function () { 
     alert(123) }); </script> </body> </html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230355.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月3日 下午4:01
下一篇 2026年3月3日 下午4:22


相关推荐

  • CCD传感器成像、尺寸、曝光时间「建议收藏」

    CCD传感器成像、尺寸、曝光时间「建议收藏」参考博主@机器视觉001的博文https://blog.csdn.net/liubing8609/article/details/78254703工业相机,最本质的功能就是将光信号转变成有序的电信号。CCD传感器成像过程1.用相机拍摄景物时,景物反射的光线通过相机的镜头透射到CCD上。2.当CCD曝光后,光电二极管受到光线的激发释放出电荷,感光元件的电信号便由此产生。3….

    2022年6月1日
    42
  • pytorch训练深度学习前期环境配置准备(包含安装Anaconda+在Anaconda下安装Pytorch+安装pycharm+pycharm中配置环境变量)

    pytorch训练深度学习前期环境配置准备(包含安装Anaconda+在Anaconda下安装Pytorch+安装pycharm+pycharm中配置环境变量)一 安装 Anaconda 下载地址 https www anaconda com distribution windows 前往官方下载页面下载 有两个版本可供选择 Python3 7 和 Python2 7 选择版之后根据自己操作系统的情况点击 64 BitGraphical 或 32 BitGraphical 进行下载 完成下载

    2026年3月27日
    3
  • python发邮件详解,smtplib和email模块详解

    python发邮件详解,smtplib和email模块详解在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,python实现发邮件也是基于此基础上进行封装的。1.python发邮件所需要的基础包python发送邮件需要用到python自带的两个模块,s…

    2025年8月7日
    4
  • 改变传统思维,抢占世界“汽车产业”制高点

    改变传统思维,抢占世界“汽车产业”制高点

    2022年3月13日
    51
  • 免费域名和空间搭建个人网站——服务器篇

    免费域名和空间搭建个人网站——服务器篇免费域名和空间搭建个人网站服务器篇网上有很多免费的服务器,但是免费的都不好用,只能凑合一下啦~~当然你也可以购买一些像腾讯,阿里云或者国外的虚拟主机。我用的是国内的主机屋点击免费空间,选择立即开通,然后登陆,注册成功后,点击立即开通,就可以了开通之后,进入控制台,点击一键初始化网站然后初始化FTP密码,初始化Mysql数据库密码,接下来需要解析域名,选择常规功能,点击域

    2022年6月22日
    2.4K
  • 数据分析之数据预处理、分析建模、可视化[通俗易懂]

    概述:简介、思路、发展历程、应用领域、开发流程;数据类型:结构化与非结构化、定性与定量、截面数据与时间序列数据;数据来源:外部来源、内部来源;数据预处理:数据清洗、数据集成、数据规约、数据变换;数据分析模型:对比分析、漏斗分析、留存分析、A/B测试、用户行为路径分析、用户分群、用户画像分析等;数据分析方法:描述统计、假设检验、信度分析、相关分析、方差分析、回归分析、聚类分析、判别分析、主成分分析、因子分析、时间序列分析等;数据可视化:Excel、PowerBI、Tableau、Python;

    2022年4月17日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号