html - 每次旋转之间暂停动画五秒钟
问题描述
我正在做这个演示。如何在每次旋转之间为该动画添加 5 秒延迟?
.card {
background: #00f;
width: 100px;
height: 100px;
animation: rotate 4s infinite;
-webkit-animation: rotate 4s infinite;
}
@-webkit-keyframes rotate {
100% {
transform: rotate(90deg);
}
}
@keyframes rotate {
50% {
transform: rotate(-90deg);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">A</div>
解决方案
您可以将整体动画时间设置为 9 秒(= 动画 4 秒 + 暂停 5 秒)并相应调整百分比步长,计算 4 秒相对于 9 秒的百分比(= app. 44%)
.card {
background: #00f;
width: 100px;
height: 100px;
animation: rotate 9s infinite;
}
@keyframes rotate {
22% {
transform: rotate(90deg);
}
44% {
transform: rotate(0deg);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">A</div>
补充:第二个版本,停顿在前后旋转之间:
.card {
background: #00f;
width: 100px;
height: 100px;
animation: rotate 9s infinite;
}
@keyframes rotate {
22% {
transform: rotate(90deg);
}
78% {
transform: rotate(90deg);
}
100% {
transform: rotate(0deg);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">A</div>
另一个补充:第三个版本,所有旋转之间都有暂停:
(只需根据需要调整百分比值和动画时间)
.card {
background: #00f;
width: 100px;
height: 100px;
animation: rotate 20s infinite;
}
@keyframes rotate {
25% {
transform: rotate(90deg);
}
50% {
transform: rotate(90deg);
}
75% {
transform: rotate(0deg);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">A</div>
推荐阅读
- javascript - 如何使用map方法将查询参数传递给api并将每个json响应连接到setState中反应?
- python - 如何使用 for 循环来缩短这段代码?Python
- python - 阻止 groupby 在 python 数据框中进行 2 个组合相同的对
- php - 很难理解关联数组结构中的“回声”
- google-assistant-sdk - 如何创建一个您不必要求的 Google Assistant 应用程序?
- reactjs - 将文件从状态添加到 Firestore 集合 Firestore Firebase ReactJs
- php - WooCommerce 自定义产品状态不可见/工作
- for-loop - DOS 批处理文件 For 循环运行两次
- environment-variables - 使用 sudo 安装气流不采用 AIRFLOW_HOME 设置
- java - 为什么 ajax post 不能在服务器上正确保存文件?