Skip to content

useParallax

Category
Export Size
1.94 kB
Last Changed
last year

Create parallax effect easily. It uses useDeviceOrientation and fallback to useMouse if orientation is not supported.

Demo

roll: 0.5
tilt: -0.5
source: mouse
Credit of images to Jarom Vogel

Usage

vue
<script setup>
import { useParallax } from '@vueuse/core'

const container = ref(null)
const { tilt, roll, source } = useParallax(container)
</script>

<template>
  <div ref="container" />
</template>

Type Declarations

typescript
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

Source

SourceDemoDocs

Contributors

Anthony Fu
Antério Vieira
Anthony Fu
Robin
huiliangShen
Jelf
wheat

Changelog

v12.0.0-beta.1 on 11/21/2024
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v10.8.0 on 2/20/2024
3fd94 - feat: can work with different screen orientation (#3675)

Released under the MIT License.

FREE WEEKEND DEAL
Get 60% off + 4 BONUS PRODUCTS
AIDD Starter + 2 Masterclass Courses + Certification
Claim Offer
extended for
06
hours
:
41
minutes
:
13
seconds
: