You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lottie Player非循环场景下反向播放失效问题求助

解决Lottie反向播放一次即停止的问题

当loop=false时仅设置setDirection=-1不会生效,核心原因是Lottie默认从第0帧开始播放,反向状态下没有可移动的帧空间。要实现反向播放一次后停止,需要先将动画定位到结束帧,再启动反向播放。

具体实现(以Web端lottie-web为例)

// 初始化动画实例(确保autoplay、loop都设为false)
const lottieAnim = lottie.loadAnimation({
  container: document.getElementById('your-container'),
  renderer: 'svg',
  loop: false,
  autoplay: false,
  path: 'path/to/your/animation.json'
});

// 配置反向播放一次停止
lottieAnim.setDirection(-1); // 设置为反向播放
lottieAnim.seek(lottieAnim.totalFrames); // 跳转到动画最后一帧
lottieAnim.play(); // 开始播放,从最后一帧反向走到第一帧后自动停止

另一种方式:使用playSegments

也可以直接指定播放片段范围,实现从最后一帧到第0帧的单次播放:

lottieAnim.playSegments([lottieAnim.totalFrames, 0], true);
lottieAnim.setLoop(false);

原理说明

当loop=false时,Lottie默认播放区间是[0, totalFrames]。仅设置反向方向的话,动画初始在第0帧,没有反向移动的帧范围,所以不会触发播放。先跳转至最后一帧后,反向播放就会从终点逐步走到起点,到达后因关闭循环而自动停止。

如果是Android/iOS端的Lottie SDK,思路完全一致:先seek到动画最大帧,设置播放方向为反向,再调用play方法即可。

内容的提问来源于stack exchange,提问作者Aigbe Destiny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:52:09