跳到内容

useFullscreen

类别
导出大小
1.1 kB
最后更改
3 周前

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

演示

用法

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

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

全屏指定元素。某些平台(如 iOS 的 Safari)仅允许在视频元素上全屏。

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

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

组件用法

此函数还通过 @vueuse/components 包提供无渲染组件版本。了解更多关于用法的信息

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

类型声明

typescript
export interface UseFullscreenOptions extends ConfigurableDocument {
  /**
   * Automatically exit fullscreen when component is unmounted
   *
   * @default false
   */
  autoExit?: boolean
}
/**
 * Reactive Fullscreen API.
 *
 * @see https://vueuse.org.cn/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>

源代码

源代码演示文档

贡献者

Anthony Fu
Fernando Fernández
wheat
Antério Vieira
IlyaL
Anthony Fu
tawen
zaqvil
Yvan Zhu
vaakian X
Jelf
webfansplz
Shinigami
Alex Kozack

更新日志

v12.4.0 于 2025/1/10
dd316 - feat: 尽可能在任何地方使用被动事件处理程序 (#4477)
v12.0.0-beta.1 于 2024/11/21
0a9ed - feat!: 删除 Vue 2 支持,优化 bundles 和清理代码 (#4349)
v10.2.1 于 2023/6/28
14edb - fix: 当不在全屏模式时跳过退出 (#3144)
v10.1.0 于 2023/4/22
4a7a1 - fix: 针对多个全屏元素的 isFullscreen 处理 (#3000)
v10.0.0-beta.3 于 2023/4/12
2e467 - fix!: 更好的跨平台兼容性 (#2915)
v10.0.0-beta.0 于 2023/3/14
9d394 - fix: 处理 Safari iOS (#2822)

在 MIT 许可证下发布。