pub struct Animation {
pub duration: Duration,
pub delay: Duration,
pub repeat: AnimationRepeat,
pub easing: Rc<dyn Fn(f32) -> f32>,
pub max_fps: Option<f32>,
}Expand description
An animation that can be applied to an element.
Fields§
§duration: DurationThe amount of time for which this animation should run. A zero
duration completes immediately after the delay, including for
AnimationRepeat::Forever.
delay: DurationThe amount of time to wait before the animation starts. The delay applies once, when the animation begins; it is not repeated between passes of a repeating animation.
repeat: AnimationRepeatWhether and how this animation repeats when a pass finishes
easing: Rc<dyn Fn(f32) -> f32>A function that maps normalized time to an animated value. The result may exceed 0..1 for easing functions that overshoot.
max_fps: Option<f32>The maximum number of times per second this animation re-renders.
When None, the animation re-renders on every frame.
Implementations§
Source§impl Animation
impl Animation
Sourcepub fn new(duration: Duration) -> Self
pub fn new(duration: Duration) -> Self
Create a new animation with the given duration. By default the animation will only run once and will use a linear easing function.
Sourcepub fn repeat_n(self, times: u32) -> Self
pub fn repeat_n(self, times: u32) -> Self
Set the animation to run the given number of passes in total, then hold its final value. Zero is treated as one pass.
Sourcepub fn with_repeat(self, repeat: AnimationRepeat) -> Self
pub fn with_repeat(self, repeat: AnimationRepeat) -> Self
Set how the animation repeats when a pass finishes.
Sourcepub fn with_delay(self, delay: Duration) -> Self
pub fn with_delay(self, delay: Duration) -> Self
Wait for the given duration before the animation starts. While the
delay elapses the animation holds its initial value (easing(0)) and
no animation frames are requested. In an animation chain (see
AnimationExt::with_animations) the delay of each animation counts
from the moment that animation begins.
Sourcepub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Self
pub fn with_easing(self, easing: impl Fn(f32) -> f32 + 'static) -> Self
Sets the easing function used to map normalized time to an animated value.
The output is not clamped, allowing physical easing functions such as springs to overshoot.
Sourcepub fn with_max_fps(self, max_fps: f32) -> Self
pub fn with_max_fps(self, max_fps: f32) -> Self
Limit how often this animation re-renders. Instead of re-rendering on
every frame, the animation schedules its next render 1 / max_fps
seconds after the current one. Values that are not finite and positive
are ignored.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Animation
impl !Send for Animation
impl !Sync for Animation
impl !UnwindSafe for Animation
impl Freeze for Animation
impl Unpin for Animation
impl UnsafeUnpin for Animation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more