尽管设置了动画填充模式,为什么我的动画会回滚到初始列表项?

Why are my animations rolling back to the initial list item despite setting animation-fill-mode?

我遇到了一个问题,我的两个动画在动画中的最后一个项目显示后都回滚到顶部。

我有一个包含四个项目的列表,这是另一个列表中的一个项目,该列表包含这个项目和另一个项目。

像这样:

<ul>
  <li>
    <ul>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
  </li>
  <li></li>
</ul>

在嵌套列表中,我使用关键帧一次显示一项,然后向下滚动到下一项。完成后,我从未嵌套列表滚动到第二个项目以显示文本的最后一位。

我认为添加 animation-fill-mode: forwards 会使动画保持在最后一个项目上。但是我似乎没有正确使用它。

这是最终应该向用户显示的内容:

事情是1.
东西是2.
事情是 3.
事情是 4.
显示最终文本。

我添加了一个代码笔来说明我的意思:

代码笔:https://codepen.io/TomDizzle/pen/abqYjzB?editors=1100

谁能看出我错在哪里?任何帮助将不胜感激。

问题出在你的关键帧上!您的 sass 循环未指定 100% 值,因此一旦关键帧结束,它们就会恢复为初始值。您可以通过查看编译输出来验证这一点:

@keyframes scrollUpOuter {
  15%,
  25% {
    transform: translateY(-50%);
  }
}

您可以将最终值添加到 sass 循环中,或者您可以使用几个简单的关键帧重写它们:

@keyframes scrollUpOuter {
  0% {
    transform:translateY(0)
  }
  100% {
    transform:translateY(-50%);
  }
}

不幸的是,据我所知,这里的编辑器不支持 sass,但这里有一个显示这两个选项的代码笔:https://codepen.io/29b6/pen/abqYeJj