jquery - 显示新的css动画线性停止2s
问题描述
现在的代码在显示 <li> 内容时正在不停地向上移动。如何在关键帧之间暂停?
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));
}
}
<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>
解决方案
尝试复制状态。
11.8% {transform: translateY(-50px);}
17.7% {transform: translateY(-50px);}
假设我们按要求停止动画 2 秒,并在其间设置动画 1 秒。我们有 5 个动画 * 3 =(总共 15 个)+ 2 秒。
animation: li_move forwards 17s ease-out
1s 的动画是 100%/17 = 5.9%。每5.9%的动画,动画将持续1秒。我们可以制作一个 excel spreahseet,以便我们可以更好地对其进行可视化并轻松输入数字。
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);}
}
<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 上来暂停动画:
#list-container:hover {
animation-play-state: paused;
}
推荐阅读
- pandas - 熊猫:需要在两列上找到唯一名称的数量
- bash - 添加一个整数和一个浮点数
- python - 在 django 应用启动时自动创建 Elasticsearch 索引
- c# - 如何保存在自定义检查器中更改的变量
- android - 如何使用数据绑定更改按钮的文本
- python - 如何以与静态类型检查兼容的方式实现接口?
- javascript - Query parameter to strip value that contains @ and
- swift - 来自 XML 的 Swift Failable 初始化程序
- typescript - 在同一个接口中不能有常规属性和计算属性键
- javascript - ReactJS:类中的生命周期方法或带有道具的功能组件中的钩子