SpringValue
The very driving force of react-spring
. It's a class that can be used to create a single value that can be animated.
Usage
Basic usage, the SpringValue
class you initialise can be used just like our imperative api
. Meanwhile you pass the SpringValue
to your animated
component. Any type is valid, but only certain types are actually animated. Types that cannot be animated are basically immediate: true animations. Such types include: a boolean
, a display string like "none"
, etc.
import { Component, createRef } from 'react' import { SpringValue, animated } from '@react-spring/web' class AnimatedComponent extends Component { isShowing = createRef(false) springOpacity = new SpringValue(0) toggle = () => { this.springOpacity.start(isShowing ? 0 : 1) this.isShowing = !this.isShowing } render() { return ( <> <button onClick={this.toggle}>click</button> <animated.div style={{ opacity: this.springOpacity }}> I will fade </animated.div> </> ) } }
Properties
Prop | Type | Default |
---|---|---|
animation | Animation | Animation |
defaultProps | SpringConfig | {} |
goal | any | – |
hasAnimated | boolean | false |
idle | boolean | – |
isAnimating | boolean | false |
isDelayed | boolean | false |
isPaused | boolean | false |
key | string | undefined | undefined |
queue | SpringUpdate[] | [] |
velocity | number | number[] | – |
Methods
Advance
Advance the current animation by a number of milliseconds.
advance(dt: number): void;
Finish
Skip to the end of the current animation.
finish(): this;
Pause
Freeze the active animation in time, as well as any updates merged before resume
is called.
pause(): void;
Reset
Restart the animation.
reset(): void;
Resume
Resume the animation if paused.
resume(): void;
Set
Set the current value, while stopping the current animation.
set(value: T | FluidValue<T>): this;
Start
Update this value's animation using the queue of pending props, and unpause the current animation (if one is frozen). When arguments are passed, a new animation is created, and the queued animations are left alone.
start(): AsyncResult<this>; start(props: SpringUpdate<T>): AsyncResult<this>; start(to: T, props?: SpringProps<T>): AsyncResult<this>;
Stop
Stop the current animation, and cancel any delayed updates. Pass true
to call onRest
with cancelled: true
.
stop(cancel?: boolean): this
Update
Push props into the pending queue.
update(props: SpringUpdate<T>): this;