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;