JavaScript网页全屏API

摘要:
在webkit浏览器中:输入全屏:element。webkitRequestFullScreen()退出全屏:文档。webkitCancelFullScreen()在Gecko浏览器中:输入全屏:元素。mozRequestFullScreen()退出全屏:文档。mozCancelFullScreen()虽然W3C制定了全屏API标准,但并非所有浏览器都支持它,因此有必要在使用中执行必要的兼容性过程。3) 对于onFullScreenChange事件的回调,不能在safari中写入警报。如果您写入警报,单击后将自动退出全屏。4) 按f11进入全屏,onFullScreenChange事件不会响应。单击、mousedown和mouseup事件都正常。

在大多数的浏览器中都有实现网页全屏显示的功能,并且大部分浏览器实现全屏显示和退出全屏显示的快捷键通常是F11和Esc两个按键。如今,W3C已经制定了关于网页全屏显示的API,利用这个API 可以实现网页的全屏显示,并且还能将某个特定的元素设置为全屏显示,在各浏览器的兼容性:google chrome 15 +, safri5.1+,firfox10+,IE11都已经开始支持全屏API。

进入全屏和退出全屏的方法:

进入全屏:element.requestFullscreen()

退出全屏:document.exitFullscreen()

当然这是W3C标准中的使用方法,在各浏览器使用中有所不同。

在webkit浏览器中:

进入全屏:element.webkitRequestFullScreen()
退出全屏:document.webkitCancelFullScreen()

在Gecko (Firefox)浏览器中:

进入全屏:element.mozRequestFullScreen()
退出全屏:document.mozCancelFullScreen()

虽然W3C制定了全屏API的标准,但在各浏览器中都没有很好的支持这个标准,因此在使用中还要进行必要的兼容性处理过程。

兼容性封装:

//进入全屏
function rfs() {
    var de = document.documentElement;

    if(de.requestFullscreen) {
        de.requestFullscreen();
    }

    if(de.mozRequestFullScreen) {
        de.mozRequestFullScreen();
    }

    if(de.webkitRequestFullScreen) {
        de.webkitRequestFullScreen();
    }
};

//退出全屏
function efs() {
    var d = document;

    if(d.exitFullscreen) {
        d.exitFullscreen();
    }

    if(d.mozCancelFullScreen) {
        d.mozCancelFullScreen();
    }

    if(d.webkitCancelFullScreen) {
        d.webkitCancelFullScreen();
    }
};

本人是在无意中发现的这个API,还没有真正的在项目中使用过,无法给出使用建议。因此在这里引用博客文章——html5实现全屏的api方法中的使用心得:

1)在safari和chrome下,全屏后的元素全自动全屏居中,且背景色变为黑色。我尝试过通过给body设背景色来改变下背景色的颜色,失败。在firefox下,全屏后的背景色为全屏那个元素的背景色,且元素并不居中。如果给body调全屏,在webkit内核的浏览器下和按11进入的全屏效果差得很远,主要是背景色问题,而firefox下则效果接近于f11全屏——当然还是有区别,比如进入全屏的动画过程就不相同。

2)退出全屏是通过给document来调来cancelFullScreen方法,但如果想让页面所有元素全部进入全屏的话,不能给document调requestFullScreen,只能给body调。

3)onFullScreenChange事件的回调,在safari里不能写alert,如果写alert,点击后会自动退出全屏。

4)按f11进入的全屏,onFullScreenChange事件不会响应。

5)进入全屏一定要点击某个节点,不能直接调进入全屏api。mouseover、mousemove等接近onload的事件也不行。click、mousedown、mouseup事件可以。策略应该同window.open应该是一样的。

6)ios暂不支持全屏api。

文章最后提供一个演示demo: http://robnyman.github.io/fullscreen/

免责声明:文章转载自《JavaScript网页全屏API》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql启动报错“NET HELPMSG 3534“的解决办法独立使用Asp.net Core 的razor模板 (一):Razor引擎的一些细节下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分享整理的免费API接口

天气接口 聚合数据: http://op.juhe.cn/onebox/weather/query 用例 官方文档 来源:weather.com 百度接口: http://api.map.baidu.com/telematics/v3/weather?location=嘉兴&output=json&ak=5slgyqGDENN7Sy7pw2...

如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

1.描述 PDF文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。可移植文档格式,也称为"便携文档格式",是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件...

postman-变量/环境/过滤等

之前虽然自己也有用postman来测试api,但都只是最简单输入url,发送,查看结果,大部分时候跟使用浏览器差不多,偶然在简书首页看到一篇 API开发神器-Postman , 深感还是得对自己使用的工具多琢磨一下,兴许你就发现了宝贝,大大加快开发测试速度了; 这里没有打算写全面的教程,只对我之前没了解的环境设置/变量使用以及对返回结果进行过滤等操作进行记...

linux中直接修改jar包内配置文件

https://www.cnblogs.com/bbbing/p/11011410.html (1)使用jar tvf jar名称 | grep 目标文件名 查询出目标文件在jar包中的目录:jar tvf service-0.0.1-SNAPSHOT.jar |grep config.properties(2)使用jar xvf jar名称 目标文件名(...

Java全家桶的这些知识,不用学了

众所周知,Java 的知识体系繁冗复杂,但是有很多知识在实际工作中几乎没有人用。 很多人在学习过程中,却经常把有限的时间和精力花在了这些“没有用”的知识上,事倍功半。 下面我捋一捋 Java 中那些不建议学习的知识点,让大家能避过雷区,尽量提升些学习的精准度。 Java 的桌面 GUI 相关技术 GUI,即 Graphical User Interface...

ASP.NET Core WebAPI学习-1

Web API学习 ASP.NET Core WebAPI学习-1 ASP.NET Core WebAPI学习-2 ASP.NET Core WebAPI学习-3 ASP.NET Core WebAPI学习-4 ASP.NET Core WebAPI学习-5 ASP.NET Core WebAPI学习-6 创建Web API项目 打开Visual...