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);
}
});
const target = $('#target')[0]; // Get DOM element from jQuery collection
$('#button').on('click', () => {
if (screenfull.enabled) {
screenfull.request(target);
}
});
$('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);
});
}
使元素全屏。
接受DOM元素。默认是<html>
。如果使用除当前活动之外的其他元素进行调用,则如果它是一个后代,它将切换到该元素。
如果您的页面位于内部,<iframe>
则需要添加allowfullscreen
属性(+ webkitallowfullscreen
和mozallowfullscreen
)。
请注意,只有点击,触摸,按键等用户活动启动时,浏览器才会进入全屏模式。
退出全屏。
如果当前全屏模式未激活则请求全屏,否则退出全屏。
事件: change
error
添加侦听器,以便在浏览器进出全屏或出现错误时执行相应的事件。
删除以前注册的事件侦听器。
与.on('change', function)
效果相同。
与.on('error', function)
效果相同。
返回布尔值,表示当前是否处于全屏模式。
返回当前全屏的元素,否则返回null。
返回一个布尔值,是否允许您进入全屏。如果您的页面位于内部,<iframe>
则需要添加allowfullscreen
属性(+ webkitallowfullscreen
和mozallowfullscreen
)。
暴露在内部使用原始属性(如果需要前缀):requestFullscreen
, exitFullscreen
, fullscreenElement
, fullscreenEnabled
, fullscreenchange
, fullscreenerror
。