首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示新<li>时css动画线性停止2秒

显示新<li>时css动画线性停止2秒
EN

Stack Overflow用户
提问于 2020-10-06 16:36:56
回答 1查看 100关注 0票数 0

现在的代码在显示内容时没有停顿地向上移动。如何在关键帧之间暂停?

代码语言:javascript
复制
li {
  line-height: 50px;
}

#list-container {
  animation: li_move forwards 10s linear 1s infinite;
}

@keyframes li_move {
  0% {
    transform: translateY(0%);
  }
  100% {
    transform: translateY(calc((100% - 50px)*-1));
  }
}
代码语言:javascript
复制
<div id="list-container">
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
  </ul>
</div>

EN

回答 1

Stack Overflow用户

发布于 2020-10-07 00:09:44

尝试复制状态。

代码语言:javascript
复制
  11.8% {transform: translateY(-50px);}
  17.7% {transform: translateY(-50px);}

让我们假设我们按要求停止动画2秒,并在两者之间动画1秒。我们有5个动画*3=(总共15) +2秒。

代码语言:javascript
复制
animation: li_move forwards 17s ease-out 

动画的1s为100%/17 = 5.9%。每5.9%的动画,动画将持续1秒。我们可以创建一个excel spreahseet,这样我们就可以更好地可视化它,并轻松地输入数字。

代码语言:javascript
复制
li {
  line-height: 50px;
}

#list-container {
  animation: li_move forwards 17s ease-out 
  1s infinite;
}

@keyframes li_move {
  0% {transform: translateY(0);}
  11.8% {transform: translateY(-50px);}
  17.7% {transform: translateY(-50px);}
  29.5% {transform: translateY(-100px);}
  35.4% {transform: translateY(-100px);}
  47.2% {transform: translateY(-150px);}
  53.1% {transform: translateY(-150px);}
  64.9% {transform: translateY(-200px);}
  70.8% {transform: translateY(-200px);}
  82.5% {transform: translateY(-250px);}
  88.5% {transform: translateY(-250px);}
  88.500001% {transform: translateY(0);}
}
代码语言:javascript
复制
<div id="list-container">
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
  </ul>
</div>

可选:您也可以将鼠标悬停在div上来暂停动画:

代码语言:javascript
复制
#list-container:hover {
  animation-play-state: paused;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64222172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档