Add comprehensive reference documentation for: - Vitest: environments, projects/workspaces, type testing, vi utilities - Pinia: HMR, Nuxt integration, SSR setup - Vue: built-in components (Transition, Teleport, Suspense, KeepAlive) and advanced directives
59 lines
1.3 KiB
Markdown
59 lines
1.3 KiB
Markdown
---
|
|
category: Sensors
|
|
---
|
|
|
|
# useParallax
|
|
|
|
Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse` if orientation is not supported.
|
|
|
|
## Usage
|
|
|
|
```vue
|
|
<script setup lang="ts">
|
|
import { useParallax } from '@vueuse/core'
|
|
|
|
const container = ref(null)
|
|
const { tilt, roll, source } = useParallax(container)
|
|
</script>
|
|
|
|
<template>
|
|
<div ref="container" />
|
|
</template>
|
|
```
|
|
|
|
## Type Declarations
|
|
|
|
```ts
|
|
export interface UseParallaxOptions extends ConfigurableWindow {
|
|
deviceOrientationTiltAdjust?: (i: number) => number
|
|
deviceOrientationRollAdjust?: (i: number) => number
|
|
mouseTiltAdjust?: (i: number) => number
|
|
mouseRollAdjust?: (i: number) => number
|
|
}
|
|
export interface UseParallaxReturn {
|
|
/**
|
|
* Roll value. Scaled to `-0.5 ~ 0.5`
|
|
*/
|
|
roll: ComputedRef<number>
|
|
/**
|
|
* Tilt value. Scaled to `-0.5 ~ 0.5`
|
|
*/
|
|
tilt: ComputedRef<number>
|
|
/**
|
|
* Sensor source, can be `mouse` or `deviceOrientation`
|
|
*/
|
|
source: ComputedRef<"deviceOrientation" | "mouse">
|
|
}
|
|
/**
|
|
* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`
|
|
* if orientation is not supported.
|
|
*
|
|
* @param target
|
|
* @param options
|
|
*/
|
|
export declare function useParallax(
|
|
target: MaybeElementRef,
|
|
options?: UseParallaxOptions,
|
|
): UseParallaxReturn
|
|
```
|