Lzh on GitHub

响应式全屏 API Fullscreen API。响应式全屏 API (Fullscreen API) 添加了方法,用于将特定元素(及其后代)以全屏模式呈现,并在不再需要时退出全屏模式。这使得可以将所需内容(例如在线游戏)使用用户的整个屏幕呈现,从屏幕上移除所有浏览器用户界面元素和其他应用程序,直到全屏模式关闭。

Demo

使用

import { useFullscreen } from '@vueuse/core'
import { useTemplateRef } from 'vue'

const { isFullscreen, enter, exit, toggle } = useFullscreen()

将指定元素全屏显示。某些平台(例如 iOS 上的 Safari)只允许视频元素全屏。

const el = useTemplateRef<HTMLElement>('el')

const { isFullscreen, enter, exit, toggle } = useFullscreen(el)
<video ref="el"></video>

组件方式使用

此函数也通过 @vueuse/components 包提供一个无渲染组件版本。了解更多用法

<template>
  <UseFullscreen v-slot="{ toggle }">
    <video />
    <button @click="toggle">
      Go Fullscreen
    </button>
  </UseFullscreen>
</template>

类型声明

export interface UseFullscreenOptions extends ConfigurableDocument {
  /**
   * Automatically exit fullscreen when component is unmounted
   *
   * @default false
   */
  autoExit?: boolean
}
/**
 * Reactive Fullscreen API.
 *
 * @see https://vueuse.org/useFullscreen
 * @param target
 * @param options
 */
export declare function useFullscreen(
  target?: MaybeElementRef,
  options?: UseFullscreenOptions,
): {
  isSupported: ComputedRef<boolean>
  isFullscreen: ShallowRef<boolean, boolean>
  enter: () => Promise<void>
  exit: () => Promise<void>
  toggle: () => Promise<void>
}
export type UseFullscreenReturn = ReturnType<typeof useFullscreen>