Skip to content

useFullscreen

Category
Export Size
1.23 kB
Last Changed
18 hours ago

Reactive Fullscreen API. It adds methods to present a specific Element (and its descendants) in full-screen mode, and to exit full-screen mode once it is no longer needed. This makes it possible to present desired content—such as an online game—using the user's entire screen, removing all browser user interface elements and other applications from the screen until full-screen mode is shut off.

Demo

Usage

ts
import { 
useFullscreen
} from '@vueuse/core'
const {
isFullscreen
,
enter
,
exit
,
toggle
} =
useFullscreen
()

Fullscreen specified element. Some platforms (like iOS's Safari) only allow fullscreen on video elements.

vue
<script setup lang="ts">
import { 
useFullscreen
} from '@vueuse/core'
import {
useTemplateRef
} from 'vue'
const
el
=
useTemplateRef
('el')
const {
isFullscreen
,
enter
,
exit
,
toggle
} =
useFullscreen
(
el
)
</script> <template> <
video
ref
="
el
" />
</template>

Component Usage

This function also provides a renderless component version via the @vueuse/components package. Learn more about the usage.

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

Type Declarations

ts
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
>

Source

SourceDemoDocs

Contributors

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

Changelog

v14.0.0-alpha.3 on
8ac73 - fix: specify return types for request, exit, and enabl… (#4965)
v14.0.0-alpha.0 on
8c521 - feat(components)!: refactor components and make them consistent (#4912)
v13.2.0 on
09cbd - fix: get the correct initial state while mounted (#4745)
v12.4.0 on
dd316 - feat: use passive event handlers everywhere is possible (#4477)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v10.2.1 on
14edb - fix: skip exiting when not in fullscreen mode (#3144)
v10.1.0 on
4a7a1 - fix: isFullscreen handling for mutliple fullscreen elements (#3000)

Released under the MIT License.

Build faster with AI
New Masterclass to help you leverage AI in your Vue workflow
Get Early Access