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
    评论
Screenfull.js是一个用于实现全屏功能的JavaScript库。根据提供的引用内容,可以看出在使用该库时有两个问题。首先,报错的原因是因为导入路径错误,应该将导入路径改为`import ScreenFull from 'screenfull/dist/screenfull'`。其次,还需要注意在使用Internet Explorer浏览器时,需要使用Promise polyfill来支持。另外,值得注意的是,该库在桌面和iPad上都有支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用screenfull插件报错问题](https://blog.csdn.net/weixin_47979372/article/details/124071471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue-fullscreen:一个简单的全屏 Vue.js 组件](https://download.csdn.net/download/weixin_42131352/20446840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [关于使用screenfull插件报错问题](https://blog.csdn.net/qq_42931285/article/details/126944111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值