impl fullscreen mode

This commit is contained in:
Yanzhen Yu
2026-04-01 12:00:00 +08:00
parent c9702063a0
commit cae9f7652b
4 changed files with 122 additions and 10 deletions

View File

@@ -31,3 +31,56 @@ export function formatTime(ms) {
}
return `${padZero(minute)}:${padZero(second)}`;
}
export function openFullscreen(el) {
if (el.requestFullscreen) {
return el.requestFullscreen();
} else if (el.mozRequestFullScreen) {
/* Firefox */
return el.mozRequestFullScreen();
} else if (el.webkitRequestFullscreen) {
/* Chrome, Safari and Opera */
return el.webkitRequestFullscreen();
} else if (el.msRequestFullscreen) {
/* IE/Edge */
return el.msRequestFullscreen();
}
}
export function exitFullscreen() {
if (document.exitFullscreen) {
return document.exitFullscreen();
} else if (document.mozExitFullscreen) {
/* Firefox */
return document.mozExitFullscreen();
} else if (document.webkitExitFullscreen) {
/* Chrome, Safari and Opera */
return document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
/* IE/Edge */
return document.msExitFullscreen();
}
}
export function isFullscreen() {
return (
document.fullscreen ||
document.webkitIsFullScreen ||
document.mozFullScreen ||
document.msFullscreenElement
);
}
export function onFullscreenChange(handler) {
document.addEventListener('fullscreenchange', handler);
document.addEventListener('webkitfullscreenchange', handler);
document.addEventListener('mozfullscreenchange', handler);
document.addEventListener('MSFullscreenChange', handler);
return () => {
document.removeEventListener('fullscreenchange', handler);
document.removeEventListener('webkitfullscreenchange', handler);
document.removeEventListener('mozfullscreenchange', handler);
document.removeEventListener('MSFullscreenChange', handler);
};
}