JavaScript全屏,监听页面是否全屏

简介: JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。

以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量

javascriptlet isInFullscreen = false;
 
// 全屏请求函数
function requestFullscreen(element) {
if (element.requestFullscreen) {
element.requestFullscreen().then(() => {
isInFullscreen = true;
console.log("全屏模式已启用");
}).catch(err => {
console.error("无法进入全屏模式", err);
});
} else if (element.mozRequestFullScreen) { /* Firefox */
element.mozRequestFullScreen().then(() => {
isInFullscreen = true;
console.log("全屏模式已启用");
}).catch(err => {
console.error("无法进入全屏模式", err);
});
} else if (element.webkitRequestFullscreen) { /* Chrome, Safari 和 Opera */
element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT).then(() => {
isInFullscreen = true;
console.log("全屏模式已启用");
}).catch(err => {
console.error("无法进入全屏模式", err);
});
} else if (element.msRequestFullscreen) { /* IE/Edge */
element.msRequestFullscreen().then(() => {
isInFullscreen = true;
console.log("全屏模式已启用");
}).catch(err => {
console.error("无法进入全屏模式", err);
});
}
}
 
// 退出全屏函数
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen().then(() => {
isInFullscreen = false;
console.log("已退出全屏模式");
}).catch(err => {
console.error("无法退出全屏模式", err);
});
} else if (document.mozCancelFullScreen) { /* Firefox */
document.mozCancelFullScreen().then(() => {
isInFullscreen = false;
console.log("已退出全屏模式");
}).catch(err => {
console.error("无法退出全屏模式", err);
});
} else if (document.webkitExitFullscreen) { /* Chrome, Safari 和 Opera */
document.webkitExitFullscreen().then(() => {
isInFullscreen = false;
console.log("已退出全屏模式");
}).catch(err => {
console.error("无法退出全屏模式", err);
});
} else if (document.msExitFullscreen) { /* IE/Edge */
document.msExitFullscreen().then(() => {
isInFullscreen = false;
console.log("已退出全屏模式");
}).catch(err => {
console.error("无法退出全屏模式", err);
});
}
}
 
// 假设你有一个元素需要全屏
const element = document.documentElement; // 例如整个文档或者某个特定元素
 
// 你可以通过调用 requestFullscreen 来进入全屏模式
// requestFullscreen(element);
 
// 如果你需要监听键盘事件或其他事件来退出全屏模式,你可以调用 exitFullscreen
// exitFullscreen();
 
// 你可以通过 isInFullscreen 变量来检查当前是否在全屏模式
console.log(isInFullscreen ? "当前在全屏模式" : "当前不在全屏模式");


目录
相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
4月前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
55 5
|
3月前
|
JavaScript
在 Vue.js 中使用 watch 来监听对象属性的变化
在 Vue.js 中使用 watch 来监听对象属性的变化
|
3月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
117 2
前端JS读取文件内容并展示到页面上
|
2月前
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
69 4
|
2月前
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
82 2
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
165 0
|
3月前
|
JavaScript 前端开发
js 回到页面顶部
本文提供了一个JavaScript函数`scrollToTop`,用于平滑滚动页面回到顶部。该函数利用`requestAnimationFrame`和`window.scrollTo`方法逐步减少滚动条距离,直到页面完全回到顶部。
36 1
|
3月前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
2月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
41 0