CSS 动画循环间添加暂停间隔的完整实现方案
发布时间 - 2025-12-26 00:00:00 点击率:次`animation-delay` 仅控制首次播放前的延迟,无法在每次循环之间插入停顿;要实现“循环间暂停”,需通过延长动画总时长 + 关键帧设计空闲期(如静止帧)来模拟。
在 CSS 动画中,animation-delay 的作用仅限于动画第一次启动前的等待时间,它不会在每次 iteration(迭代)之间重复生效。因此,像问题中期望的“每轮摇晃后停顿 1 秒”这类效果,直接设置 animation-delay: 1s 是无效的。
✅ 正确思路:将“动画动作 + 暂停”合并为单次完整动画周期,再设为无限循环。
以 fa-shake 为例,原动画持续 1s,若希望每次摇晃后暂停 1s,则新动画总时长应为 2s,其中:
- 0% – 50%(即前 1s):执行原有摇晃动画;
- 50% – 100%(后 1s):保持最终静止状态(如 rotate(0deg)),形成视觉暂停。
? 修改后的代码如下:
.fa-shake {
animation-name: fa-shake-paused;
animation-duration: 2s; /* 总时长 = 动作时长 + 暂停时长 */
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-fill-mode: forwards;
width: 150px;
height: auto;
}
@keyframe
s fa-shake-paused {
/* 0%–49.9%:执行原摇晃逻辑(压缩至前1秒内) */
0%, 5%, 15%, 25%, 35%, 45%, 49.9% {
transform: rotate(0deg);
}
5.5%, 16.5%, 27.5%, 38.5%, 49% {
transform: rotate(10deg);
}
11%, 22%, 33%, 44% {
transform: rotate(-20deg);
}
/* 50%–100%:完全静止,模拟1秒暂停 */
50%, 100% {
transform: rotate(0deg);
}
}? 关键技巧说明:
- 使用百分比关键帧精确分配时间比例(如 50% 对应 1s 处);
- animation-fill-mode: forwards 确保动画结束帧保持生效(虽此处非必需,但推荐作为良好实践);
- 避免在 100% 帧使用 transform: none 或未定义值,以防渲染异常。
? 进阶提示:若需更灵活控制(如暂停时长动态调整),可结合 CSS 自定义属性(--pause-duration)与 JavaScript 动态计算关键帧(需配合 @property 或运行时注入样式),但纯 CSS 方案已能满足绝大多数场景。
总结:CSS 动画不支持“迭代间延迟”,但可通过“拉长周期 + 静止帧占位”的方式优雅实现等效效果——本质是把“动-停”封装为原子化的一次动画。
# css
# javascript
# java
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
linux top下的 minerd 木马清除方法
如何在云主机上快速搭建网站?
node.js报错:Cannot find module 'ejs'的解决办法
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
如何登录建站主机?访问步骤全解析
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
javascript基于原型链的继承及call和apply函数用法分析
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
免费网站制作appp,免费制作app哪个平台好?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
Laravel如何使用Telescope进行调试?(安装和使用教程)
文字头像制作网站推荐软件,醒图能自动配文字吗?
Swift中swift中的switch 语句
bing浏览器学术搜索入口_bing学术文献检索地址
如何在自有机房高效搭建专业网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何快速启动建站代理加盟业务?
制作电商网页,电商供应链怎么做?
如何快速搭建个人网站并优化SEO?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Android Socket接口实现即时通讯实例代码
如何快速搭建自助建站会员专属系统?
如何在橙子建站上传落地页?操作指南详解
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
googleplay官方入口在哪里_Google Play官方商店快速入口指南
长沙做网站要多少钱,长沙国安网络怎么样?
PythonWeb开发入门教程_Flask快速构建Web应用
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何快速搭建二级域名独立网站?
如何快速建站并高效导出源代码?
重庆市网站制作公司,重庆招聘网站哪个好?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
网站制作免费,什么网站能看正片电影?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
,怎么在广州志愿者网站注册?
如何在建站之星绑定自定义域名?
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
javascript中闭包概念与用法深入理解
如何快速完成中国万网建站详细流程?
JavaScript如何操作视频_媒体API怎么控制播放
移动端脚本框架Hammer.js
南京网站制作费用,南京远驱官方网站?
如何在阿里云高效完成企业建站全流程?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】


s fa-shake-paused {
/* 0%–49.9%:执行原摇晃逻辑(压缩至前1秒内) */
0%, 5%, 15%, 25%, 35%, 45%, 49.9% {
transform: rotate(0deg);
}
5.5%, 16.5%, 27.5%, 38.5%, 49% {
transform: rotate(10deg);
}
11%, 22%, 33%, 44% {
transform: rotate(-20deg);
}
/* 50%–100%:完全静止,模拟1秒暂停 */
50%, 100% {
transform: rotate(0deg);
}
}