HTML5如何监听video的全屏和退出全屏?
在HTML5中,你可以使用fullscreenchange
事件来监听video元素的全屏和退出全屏操作。 这个事件在全屏状态改变时触发,无论是由用户操作(例如按下F11或点击全屏按钮)还是由JavaScript代码触发。
以下是如何使用JavaScript监听fullscreenchange
事件的示例:
const videoElement = document.getElementById('myVideo');
videoElement.addEventListener('fullscreenchange', (event) => {
if (document.fullscreenElement) {
// 进入了全屏模式
console.log("Entered fullscreen mode");
// 在这里执行进入全屏后的操作,例如隐藏其他UI元素
} else {
// 退出了全屏模式
console.log("Exited fullscreen mode");
// 在这里执行退出全屏后的操作,例如恢复隐藏的UI元素
}
});
// 下面的代码演示了如何使用JavaScript触发全屏和退出全屏
// 进入全屏
function enterFullscreen() {
if (videoElement.requestFullscreen) {
videoElement.requestFullscreen();
} else if (videoElement.mozRequestFullScreen) { /* Firefox */
videoElement.mozRequestFullScreen();
} else if (videoElement.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
videoElement.webkitRequestFullscreen();
} else if (videoElement.msRequestFullscreen) { /* IE/Edge */
videoElement.msRequestFullscreen();
}
}
// 退出全屏
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) { /* Firefox */
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) { /* IE/Edge */
document.msExitFullscreen();
}
}
// 为按钮添加点击事件监听器
const enterFullscreenButton = document.getElementById('enterFullscreen');
const exitFullscreenButton = document.getElementById('exitFullscreen');
if (enterFullscreenButton) {
enterFullscreenButton.addEventListener('click', enterFullscreen);
}
if (exitFullscreenButton) {
exitFullscreenButton.addEventListener('click', exitFullscreen);
}
HTML示例:
<!DOCTYPE html>
<html>
<head>
<title>Fullscreen Test</title>
</head>
<body>
<video id="myVideo" width="640" height="360" controls>
<source src="your_video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<button id="enterFullscreen">Enter Fullscreen</button>
<button id="exitFullscreen">Exit Fullscreen</button>
<script src="your_script.js"></script> </body>
</html>
关键点:
document.fullscreenElement
: 这个属性返回当前处于全屏模式的元素。如果没有任何元素处于全屏模式,则返回null
。 这可以用来判断当前是否处于全屏状态。- 浏览器兼容性:
requestFullscreen
和exitFullscreen
方法以及fullscreenElement
属性都有浏览器特定的前缀版本。 上面的代码包含了这些前缀,以确保在不同的浏览器中都能正常工作。 你也可以使用一些库来简化处理浏览器兼容性的代码。 fullscreenchange
事件: 这个事件在document
对象上触发。 这意味着即使全屏的元素在 iframe 中,你仍然可以在父页面中监听这个事件。
这个更完整的示例演示了如何进入和退出全屏,以及如何处理浏览器兼容性问题。 记住将 your_video.mp4
替换为你实际的视频文件,并将 your_script.js
替换为包含 JavaScript 代码的文件名。
希望这个解释能够帮助你!