usePointerLock
Reactive pointer lock.
Demo
Basic Usage
js
import { usePointerLock } from '@vueuse/core'
const { isSupported, lock, unlock, element, triggerElement } = usePointerLock()
import { usePointerLock } from '@vueuse/core'
const { isSupported, lock, unlock, element, triggerElement } = usePointerLock()
Component Usage
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
html
<UsePointerLock v-slot="{ lock }">
<canvas />
<button @click="lock">
Lock Pointer on Canvas
</button>
</UsePointerLock>
<UsePointerLock v-slot="{ lock }">
<canvas />
<button @click="lock">
Lock Pointer on Canvas
</button>
</UsePointerLock>
Type Declarations
typescript
declare global {
interface PointerLockOptions {
unadjustedMovement?: boolean
}
interface Element {
requestPointerLock(options?: PointerLockOptions): Promise<void> | void
}
}
type MaybeHTMLElement = HTMLElement | undefined | null
export interface UsePointerLockOptions extends ConfigurableDocument {
pointerLockOptions?: PointerLockOptions
}
/**
* Reactive pointer lock.
*
* @see https://vueuse.org/usePointerLock
* @param target
* @param options
*/
export declare function usePointerLock(
target?: MaybeElementRef<MaybeHTMLElement>,
options?: UsePointerLockOptions
): {
isSupported: Ref<boolean>
element: Ref<MaybeHTMLElement>
triggerElement: Ref<MaybeHTMLElement>
lock: (
e: MaybeElementRef<MaybeHTMLElement> | Event,
options?: PointerLockOptions
) => Promise<HTMLElement>
unlock: () => Promise<boolean>
}
export type UsePointerLockReturn = ReturnType<typeof usePointerLock>
declare global {
interface PointerLockOptions {
unadjustedMovement?: boolean
}
interface Element {
requestPointerLock(options?: PointerLockOptions): Promise<void> | void
}
}
type MaybeHTMLElement = HTMLElement | undefined | null
export interface UsePointerLockOptions extends ConfigurableDocument {
pointerLockOptions?: PointerLockOptions
}
/**
* Reactive pointer lock.
*
* @see https://vueuse.org/usePointerLock
* @param target
* @param options
*/
export declare function usePointerLock(
target?: MaybeElementRef<MaybeHTMLElement>,
options?: UsePointerLockOptions
): {
isSupported: Ref<boolean>
element: Ref<MaybeHTMLElement>
triggerElement: Ref<MaybeHTMLElement>
lock: (
e: MaybeElementRef<MaybeHTMLElement> | Event,
options?: PointerLockOptions
) => Promise<HTMLElement>
unlock: () => Promise<boolean>
}
export type UsePointerLockReturn = ReturnType<typeof usePointerLock>
Source
Contributors
Sergey Danilchenko