跳到正文

过渡与动画

用 transition 为样式变化添加动画。View 不会为每一帧重建。

#悬停过渡

button()
    .bg(Color::rgb8(37, 99, 235))
    .transition(Transition::colors(Duration::from_millis(160)))
    .hover(|style| style.bg(Color::rgb8(29, 78, 216)))
    .child("Hover")

#状态驱动的动画

根据 View 状态改变样式字段并调用 invalidate。动画进行时保持该元素挂载。

#时长与帧率

Transition::new 接受 Duration。用 with_easing 设置缓动,也可以用 max_fps 限制帧率。

#支持的属性

背景、边框颜色和宽度、圆角、文本颜色、盒阴影、透明度和变换会插值。宽度、高度和内边距不会。

#挂载与减少动态效果

组件支持时,在退出过渡期间保持浮层挂载。过渡会遵循系统的「减少动态效果」设置。

#动态图像

img 会播放你传入路径的 GIF 和 WebP 文件。不需要定时器。