Lottie 动画加载时如何淡入淡出?

Posted

技术标签:

【中文标题】Lottie 动画加载时如何淡入淡出?【英文标题】:How to fade in Lottie animation when it loads? 【发布时间】:2021-01-29 01:15:30 【问题描述】:

我使用 Lottie 动画作为我网站的背景(使用纯 html/CSS/JS 制作),通过滚动 ScrollMagic 进行控制。但是,在其余内容出现后,动画大约需要 1 秒才能加载。它原本要长得多,但我能够减小文件大小并增加压缩率。我正在尝试在 Lottie 加载时为其添加淡入淡出的动画,这样它就不会像突然出现那样刺耳。我用来渲染/加载 Lottie 的当前代码是

var animData = 
  container: elem,
  renderer: 'svg',
  loop: false,
  autoplay: false,
  rendererSettings: 
    progressiveLoad: false,
    preserveAspectRatio: 'xMidYMid meet'
  ,
  path: './data3.json'
;
bgAnim = lottie.loadAnimation(animData);

我尝试向 Lottie 动画容器添加简单的 CSS 属性,例如过渡,但它似乎不起作用。我将不胜感激任何人可能有的任何帮助/想法。

【问题讨论】:

【参考方案1】:

您可以将其添加到动画的父包装器中并在起始帧上开始淡入淡出。此外,如果您正在使用循环并想要淡入淡出,您可以在最近的一帧期间使用 removeClass 或定义 bgAnim.onLoopComplete 函数。

CSS:

.parent-class 
 opacity: 0;
 transition: opacity 0.3s ease-in-out;

.fading-in 
 opacity: 1;

JS:

bgAnim.onEnterFrame = ( currentFrame ) => 
  // not always an integer
  if (currentFrame < 1) 
    jQuery(elem)
      .parent('.parent-class')
      .addClass('fading-in');
  

【讨论】:

以上是关于Lottie 动画加载时如何淡入淡出?的主要内容,如果未能解决你的问题,请参考以下文章

CSS 加载动画网站(不透明度,淡入淡出)

如何使用swift 3为按钮设置动画以淡出然后淡入

滚动水平表视图时淡入淡出动画

动画网站加载(不透明度,淡入淡出)

如何控制两个 UIImage 的无动画之间的淡入淡出?

利用CSS3制作淡入淡出动画效果