screenfull.js跨浏览器使用JavaScript Fullscreen API

screenfull.js是用于跨浏览器使用JavaScript Fullscreen API的简单包装器,可让您将页面或任何元素全屏显示,并且平滑浏览器实现差异,本文只是对封装方法做一个简单的翻译。

github地址:https://github.com/sindresorhus/screenfull.js

支持

浏览器支持情况:https://caniuse.com/#feat=fullscreen

文档

例子:

全屏显示页面
document.getElementById('button').addEventListener('click', () => {
    if (screenfull.enabled) {
        screenfull.request();
    } else {
        // Ignore or do something else
    }
});
全屏某个元素
const el = document.getElementById('target');

document.getElementById('button').addEventListener('click', () => {
    if (screenfull.enabled) {
        screenfull.request(el);
    }
});
全屏使用jQuery的元素
const target = $('#target')[0]; // Get DOM element from jQuery collection

$('#button').on('click', () => {
    if (screenfull.enabled) {
        screenfull.request(target);
    }
});
使用jQuery在图像上切换全屏
$('img').on('click', event => {
    if (screenfull.enabled) {
        screenfull.toggle(event.target);
    }
});
检测全屏变化
if (screenfull.enabled) {
    screenfull.on('change', () => {
        console.log('Am I fullscreen?', screenfull.isFullscreen ? 'Yes' : 'No');
    });
}

删除侦听器:

screenfull.off('change', callback);
检测全屏错误
if (screenfull.enabled) {
    screenfull.on('error', event => {
        console.error('Failed to enable fullscreen', event);
    });
}

方法

.request()

使元素全屏。

接受DOM元素。默认是<html>。如果使用除当前活动之外的其他元素进行调用,则如果它是一个后代,它将切换到该元素。

如果您的页面位于内部,<iframe>则需要添加allowfullscreen属性(+ webkitallowfullscreenmozallowfullscreen)。

请注意,只有点击,触摸,按键等用户活动启动时,浏览器才会进入全屏模式。

.exit()

退出全屏。

.toggle()

如果当前全屏模式未激活则请求全屏,否则退出全屏。

.on(event, function)

事件: change error

添加侦听器,以便在浏览器进出全屏或出现错误时执行相应的事件。

.off(event, function)

删除以前注册的事件侦听器。

.onchange(function)

.on('change', function) 效果相同。

.onerror(function)

.on('error', function) 效果相同。

属性

.isFullscreen

返回布尔值,表示当前是否处于全屏模式。

.element

返回当前全屏的元素,否则返回null。

.enabled

返回一个布尔值,是否允许您进入全屏。如果您的页面位于内部,<iframe>则需要添加allowfullscreen属性(+ webkitallowfullscreenmozallowfullscreen)。

.raw

暴露在内部使用原始属性(如果需要前缀):requestFullscreen, exitFullscreen, fullscreenElement, fullscreenEnabled, fullscreenchange, fullscreenerror

参考

  1. Using the Fullscreen API in web browsers
  2. MDN - Fullscreen API
  3. W3C Fullscreen spec
  4. Building an amazing fullscreen mobile experience
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值