跳到内容

useScreenOrientation

Category
导出大小
770 B
Last Changed
3 weeks ago

Reactive Screen Orientation API. It provides web developers with information about the user's current screen orientation.

Demo

For best results, please use a mobile or tablet device (or use your browser's native inspector to simulate an orientation change)
isSupported: false
Orientation Type:
Orientation Angle: 0

Usage

ts
import { useScreenOrientation } from '@vueuse/core'

const {
  isSupported,
  orientation,
  angle,
  lockOrientation,
  unlockOrientation,
} = useScreenOrientation()

To lock the orientation, you can pass an OrientationLockType to the lockOrientation function

ts
import { useScreenOrientation } from '@vueuse/core'

const {
  isSupported,
  orientation,
  angle,
  lockOrientation,
  unlockOrientation,
} = useScreenOrientation()

lockOrientation('portrait-primary')

and then unlock again, with the following

ts
unlockOrientation()

Accepted orientation types are one of "landscape-primary", "landscape-secondary", "portrait-primary", "portrait-secondary", "any", "landscape", "natural" and "portrait".

Screen Orientation API MDN

Type Declarations

Show Type Declarations
typescript
export type OrientationType =
  | "portrait-primary"
  | "portrait-secondary"
  | "landscape-primary"
  | "landscape-secondary"
export type OrientationLockType =
  | "any"
  | "natural"
  | "landscape"
  | "portrait"
  | "portrait-primary"
  | "portrait-secondary"
  | "landscape-primary"
  | "landscape-secondary"
export interface ScreenOrientation extends EventTarget {
  lock: (orientation: OrientationLockType) => Promise<void>
  unlock: () => void
  readonly type: OrientationType
  readonly angle: number
  addEventListener: (
    type: "change",
    listener: (this: this, ev: Event) => any,
    useCapture?: boolean,
  ) => void
}
/**
 * Reactive screen orientation
 *
 * @see https://vueuse.org.cn/useScreenOrientation
 */
export declare function useScreenOrientation(options?: ConfigurableWindow): {
  isSupported: ComputedRef<boolean>
  orientation: Ref<OrientationType | undefined, OrientationType | undefined>
  angle: ShallowRef<number, number>
  lockOrientation: (type: OrientationLockType) => Promise<void>
  unlockOrientation: () => void
}
export type UseScreenOrientationReturn = ReturnType<typeof useScreenOrientation>

Source

SourceDemoDocs

Contributors

Anthony Fu
Anthony Fu
Michael J. Roberts
IlyaL
Fernando Fernández
Satrong
JunaYa
Jelf
Nicolas Hedger

更新日志

v12.4.0 发布于 2025/1/10
dd316 - 特性: 尽可能在所有地方使用被动事件处理程序 (#4477)
v12.0.0-beta.1 发布于 2024/11/21
0a9ed - 特性!: 删除 Vue 2 支持,优化 bundles 并清理代码 (#4349)
v10.8.0 发布于 2024/2/20
a086e - 修复: 更严格的类型
v10.7.0 发布于 2023/12/5
be3cc - 修复: 增加对锁定和解锁的容错能力 (#3575)

在 MIT 许可证下发布。