mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
refactor: 全屏判断逻辑调整(#106)
This commit is contained in:
parent
860dd4bca6
commit
cf81839ed3
11
src/global.d.ts
vendored
11
src/global.d.ts
vendored
@ -1,13 +1,16 @@
|
|||||||
interface HTMLElement {
|
interface HTMLElement {
|
||||||
webkitRequestFullScreen(options?: FullscreenOptions): Promise<void>;
|
webkitRequestFullScreen(options?: FullscreenOptions): Promise<void>;
|
||||||
mozRequestFullScreen(options?: FullscreenOptions): Promise<void>;
|
mozRequestFullScreen(options?: FullscreenOptions): Promise<void>;
|
||||||
|
msRequestFullscreen(options?: FullscreenOptions): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Document {
|
interface Document {
|
||||||
mozFullScreen: boolean;
|
webkitFullscreenElement: Element | null;
|
||||||
webkitIsFullScreen: boolean;
|
mozFullScreenElement: Element | null;
|
||||||
webkitFullScreen: boolean;
|
msFullscreenElement: Element | null;
|
||||||
|
webkitCurrentFullScreenElement: Element | null;
|
||||||
|
|
||||||
mozCancelFullScreen(): Promise<void>;
|
mozCancelFullScreen(): Promise<void>;
|
||||||
webkitCancelFullScreen(): Promise<void>;
|
webkitExitFullscreen(): Promise<void>;
|
||||||
|
msExitFullscreen(): Promise<void>;
|
||||||
}
|
}
|
@ -4,18 +4,24 @@ export const enterFullscreen = () => {
|
|||||||
if (docElm.requestFullscreen) docElm.requestFullscreen()
|
if (docElm.requestFullscreen) docElm.requestFullscreen()
|
||||||
else if (docElm.mozRequestFullScreen) docElm.mozRequestFullScreen()
|
else if (docElm.mozRequestFullScreen) docElm.mozRequestFullScreen()
|
||||||
else if (docElm.webkitRequestFullScreen) docElm.webkitRequestFullScreen()
|
else if (docElm.webkitRequestFullScreen) docElm.webkitRequestFullScreen()
|
||||||
|
else if (docElm.msRequestFullscreen) docElm.msRequestFullscreen()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 退出全屏
|
// 退出全屏
|
||||||
export const exitFullscreen = () => {
|
export const exitFullscreen = () => {
|
||||||
if (document.exitFullscreen) document.exitFullscreen()
|
if (document.exitFullscreen) document.exitFullscreen()
|
||||||
else if (document.mozCancelFullScreen) document.mozCancelFullScreen()
|
else if (document.mozCancelFullScreen) document.mozCancelFullScreen()
|
||||||
else if (document.webkitCancelFullScreen) document.webkitCancelFullScreen()
|
else if (document.webkitExitFullscreen) document.webkitExitFullscreen()
|
||||||
|
else if (document.msExitFullscreen) document.msExitFullscreen()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断是否全屏
|
// 判断是否全屏
|
||||||
export const isFullscreen = () => (
|
export const isFullscreen = () => {
|
||||||
document.mozFullScreen ||
|
const fullscreenElement =
|
||||||
document.webkitIsFullScreen ||
|
document.fullscreenElement ||
|
||||||
document.webkitFullScreen
|
document.mozFullScreenElement ||
|
||||||
)
|
document.webkitFullscreenElement ||
|
||||||
|
document.msFullscreenElement ||
|
||||||
|
document.webkitCurrentFullScreenElement
|
||||||
|
return !!fullscreenElement
|
||||||
|
}
|
@ -8,7 +8,7 @@ export default () => {
|
|||||||
|
|
||||||
const { exitScreening } = useScreening()
|
const { exitScreening } = useScreening()
|
||||||
|
|
||||||
const windowResizeListener = () => {
|
const handleFullscreenChange = () => {
|
||||||
fullscreenState.value = isFullscreen()
|
fullscreenState.value = isFullscreen()
|
||||||
if (!fullscreenState.value && escExit.value) exitScreening()
|
if (!fullscreenState.value && escExit.value) exitScreening()
|
||||||
|
|
||||||
@ -17,9 +17,9 @@ export default () => {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
fullscreenState.value = isFullscreen()
|
fullscreenState.value = isFullscreen()
|
||||||
window.addEventListener('resize', windowResizeListener)
|
document.addEventListener('fullscreenchange', handleFullscreenChange)
|
||||||
})
|
})
|
||||||
onUnmounted(() => window.removeEventListener('resize', windowResizeListener))
|
onUnmounted(() => document.removeEventListener('fullscreenchange', handleFullscreenChange))
|
||||||
|
|
||||||
const manualExitFullscreen = () => {
|
const manualExitFullscreen = () => {
|
||||||
if (!fullscreenState.value) return
|
if (!fullscreenState.value) return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user