浏览器JS全屏API通过requestFullscreen()和exitFullscreen()控制全屏状态,需用户手势触发以符合安全策略,且需处理不同浏览器前缀兼容性问题,同时监听fullscreenchange和fullscreenerror事件以实现状态同步与错误反馈。

浏览器JS全屏API允许网页内容(或特定元素)占据整个屏幕,提供沉浸式的用户体验,这在视频播放器、游戏或演示文稿等场景中尤为关键。其核心机制围绕
Element.requestFullscreen()
Document.exitFullscreen()
要使用浏览器JS全屏API,最直接的方式是调用一个元素的
requestFullscreen()
div
const myElement = document.getElementById('myFullscreenDiv');
function enterFullscreen() {
if (myElement.requestFullscreen) {
myElement.requestFullscreen();
} else if (myElement.webkitRequestFullscreen) { /* Safari */
myElement.webkitRequestFullscreen();
} else if (myElement.msRequestFullscreen) { /* IE11 */
myElement.msRequestFullscreen();
}
}
// 通常需要用户手势触发,比如点击按钮
document.getElementById('fullscreenButton').addEventListener('click', enterFullscreen);退出全屏则通过
Document.exitFullscreen()
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) { /* Safari */
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) { /* IE11 */
document.msExitFullscreen();
}
}
// 可以在另一个按钮点击时调用,或者在全屏状态下由用户按Esc键触发
document.getElementById('exitFullscreenButton').addEventListener('click', exitFullscreen);为了知道当前是否处于全屏模式,可以检查
document.fullscreenElement
null
document.fullscreenEnabled
allowfullscreen
false
全屏API的兼容性问题在早期确实是个痛点,主要体现在不同浏览器需要不同的前缀(如
webkitRequestFullscreen
mozRequestFullScreen
msRequestFullscreen
更重要的是用户交互限制。浏览器出于安全和用户体验的考虑,强制要求
requestFullscreen()
DOMException
全屏模式不仅可以作用于整个
body
video
canvas
div
例如,让一个视频进入全屏:
现代化家居响应式网站模板源码是以cmseasy进行开发的家居网站模板。该软件可免费使用,模板附带测试数据!模板源码特点:整体采用浅色宽屏设计,简洁大气,电脑手机自适应布局,大方美观,功能齐全,值得推荐的一款模板,每个页面精心设计,美观大方,兼容各大浏览器;所有代码经过SEO优化,使网站更利于搜索引擎排名,是您做环保类网站的明确选择。无论是在电脑、平板、手机上都可以访问到排版合适的网站,即便是微信等
0
const videoElement = document.getElementById('myVideo');
document.getElementById('playFullscreenBtn').addEventListener('click', () => {
if (videoElement.requestFullscreen) {
videoElement.requestFullscreen();
}
// ... 其他前缀
});这里的区别在于,全屏的“宿主”是
videoElement
document.body
至于优雅地退出全屏,除了调用
Document.exitFullscreen()
Esc
fullscreenchange
监听全屏状态的变化是构建健壮全屏体验的关键。当全屏模式进入或退出时,
document
fullscreenchange
document.addEventListener('fullscreenchange', () => {
if (document.fullscreenElement) {
console.log('现在是全屏模式');
// 可以在这里显示全屏特有的UI,或者调整元素大小
document.body.classList.add('is-fullscreen');
} else {
console.log('已退出全屏模式');
// 可以在这里恢复正常UI
document.body.classList.remove('is-fullscreen');
}
});
// 对于旧版浏览器,可能需要监听带前缀的事件
document.addEventListener('webkitfullscreenchange', () => { /* ... */ });
document.addEventListener('mozfullscreenchange', () => { /* ... */ });
document.addEventListener('MSFullscreenChange', () => { /* ... */ });这个事件处理函数会告诉我们当前是否有元素处于全屏状态(通过
document.fullscreenElement
错误处理同样重要。如果
requestFullscreen()
document
fullscreenerror
document.addEventListener('fullscreenerror', (event) => {
console.error('全屏模式请求失败:', event);
alert('无法进入全屏模式。请确保您是通过点击按钮等方式触发的。');
});
// 同样,考虑前缀
document.addEventListener('webkitfullscreenerror', (event) => { /* ... */ });
document.addEventListener('mozfullscreenerror', (event) => { /* ... */ });
document.addEventListener('MSFullscreenError', (event) => { /* ... */ });通过捕获这些错误,我们可以避免应用崩溃,并向用户解释为什么无法进入全屏,这比默默失败要好得多。一个常见的误区是只关注成功案例,而忽略了用户可能会遇到的各种限制和失败场景,导致体验断裂。全面地处理这些事件,才能真正把全屏API用得得心应手。
以上就是浏览器JS全屏API如何使用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号