JavaScript全屏API是浏览器原生接口,用于让元素真正进入系统级全屏状态;需通过用户手势调用requestFullscreen()方法,兼容处理前缀,监听fullscreenchange事件并用document.exitFullscreen()退出。

JavaScript 全屏 API 是一套浏览器原生提供的接口,允许网页中的某个元素(比如视频容器、画布或整个页面)临时占据用户整个屏幕,隐藏浏览器 UI(地址栏、工具栏等),常用于视频播放、游戏、数据可视化等场景。它不是 CSS 的 width: 100vw; height: 100vh 模拟,而是真正触发系统级全屏状态。
核心是调用目标元素的 requestFullscreen() 方法。该方法返回一个 Promise,在成功进入全屏时 resolve,失败时 reject(比如用户拒绝、不支持、或非用户手势触发)。
webkitRequestFullscreen、msRequestFullscreen),但现代浏览器基本都支持标准 requestFullscreen
const elem = document.getElementById('my-video');
function launchFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
}
// 绑定到按钮点击
document.getElementById('fs-btn').addEventListener('click', launchFullscreen);
调用全局 document.exitFullscreen() 方法即可退出当前全屏状态。同样需注意兼容性写法,并建议加 try-catch 防止报错(例如当前未处于全屏时调用会抛异常)。
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
通过监听 fullscreenchange 事件,可实时感知是否进入/退出全屏。注意事件触发在 document 上,且需通过 document.fullscreenElement 判断当前哪个元素处于全屏(为 null 表示未全屏)。
立即学习“Java免费学习笔记(深入)”;
document.fullscreenElement 返回当前全屏的 DOM 元素,或 null
document.fullscreenEnabled 判断浏览器是否支持全屏 APIdocument.addEventListener('fullscreenchange', () => {
if (document.fullscreenElement) {
console.log('已进入全屏:', document.fullscreenElement.id);
} else {
console.log('已退出全屏');
}
});
全屏 API 受安全策略严格约束,实际使用中容易踩坑:
allow="fullscreen" 属性(如 )<video></video> 元素原生全屏,不支持自定义元素.catch(e => console.warn('全屏失败:', e)) 捕获原因(如 NotAllowedError 表示非用户手势触发)elem.focus())基本上就这些。用好全屏 API 关键是尊重用户意图、做好降级处理、及时响应状态变化。不复杂但容易忽略权限和触发时机——只要确保是用户点出来的,基本就能稳稳跑起来。
以上就是javascript全屏API是什么_如何让元素进入或退出全屏模式?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号