|
@@ -0,0 +1,55 @@
|
|
|
+// 进入全屏
|
|
|
+export const requestFullscreen = (element) => {
|
|
|
+ if (element.requestFullscreen) {
|
|
|
+ element.requestFullscreen()
|
|
|
+ } else if (element.webkitRequestFullscreen) {
|
|
|
+ element.webkitRequestFullscreen()
|
|
|
+ } else if (element.msRequestFullscreen) {
|
|
|
+ element.msRequestFullscreen()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 退出全屏
|
|
|
+export const exitFullscreen = () => {
|
|
|
+ if (!document) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!isFullscreen()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (document.exitFullscreen) {
|
|
|
+ document.exitFullscreen()
|
|
|
+ } else if (document.webkitExitFullscreen) {
|
|
|
+ document.webkitExitFullscreen()
|
|
|
+ } else if (document.msExitFullscreen) {
|
|
|
+ document.msExitFullscreen()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 检测全屏状态
|
|
|
+export const isFullscreen = (element) => {
|
|
|
+ if (!document) return false
|
|
|
+ return (
|
|
|
+ (document.fullscreenElement === element) ||
|
|
|
+ (document.webkitFullscreenElement === element) ||
|
|
|
+ (document.msFullscreenElement === element)
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 监听 ESC 键退出全屏
|
|
|
+ */
|
|
|
+export const listenForEscExit = (fn) => {
|
|
|
+ if (!document) return
|
|
|
+
|
|
|
+ const handleKeyDown = (e) => {
|
|
|
+ if (e.key === 'Escape') {
|
|
|
+ fn()
|
|
|
+ document.removeEventListener('keydown', handleKeyDown) // 移除监听
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ document.addEventListener('keydown', handleKeyDown)
|
|
|
+}
|