在CSS @keyframes
动画中不直接支持迭代之间的暂停。当animation-delay
推迟动画的开始时,在迭代之间插入延迟需要解决方法。本文探讨了有效的技术,解决了先前方法的局限性。
在适应以太空为主题的员工门户网站的过程中,出现了需求。在保持随机性的同时,需要较少的恒星来最大程度地减少干扰和CPU负载。
现有方法的局限性
传统方法涉及将密钥帧调整为100%的一部分,并保持最终状态直到100%模拟停顿。这很麻烦,容易出错,并且使理解动画的逻辑变得困难。
@keyframes my-animation { / *动画(0%至50%) */ 0%{宽度:0; } 15%{宽度:100px; } / *暂停(50%至100%) */ 50%,100%{宽度:0; } }
一种新方法:有条件隐藏
高级方法使用第二个@keyframes
设置来控制暂停期间的可见性。这将动画逻辑与暂停分开。
。 动画:my-awesome-boop 1s,暂停 - 识别4s; } @keyframes my-awesome-boop { / *您的主要动画在这里 */ } @keyframes暂停 - 介于 - 曲线{ / *可见(25%) */ 0%,25%{不透明度:1; } / *隐藏(75%) */ 25.1%,100%{不透明度:0; } }
暂停持续时间必须是动画持续时间的倍数。无限重复重复的密钥帧将立即重新启动,覆盖更长的动画。
关键洞察力:宽松功能在定义的密钥帧之间适用,而不是0%至100%。这意味着将宽松曲线单独应用于连续键帧之间的每个属性。
在上面的示例中, my-awesome-beboop
在暂停期间多次奔跑,然后才能恢复。
这是适用于流星动画的方式:
在停顿期间保持可见性
如果在停顿期间必须保持动画,则第二个@keyframes
集可以抵消主动画的运动。例如,如果使用translateX
, left
或margin-left
动画以中和运动。
示例包括使用transform-origin
或用left
动画来抵消translateX
暂停。暂停translateX
进行多个迭代需要更复杂的密钥框架:
/ *暂停三个迭代 */ @keyframes slide-left pape { 25%,50%,75%{左:0; } 37.5%,62.5%,87.5%{左:-100px; } 100%{左:0; } }
由于动画冲突,可能会发生较小的抖动。
结论
在暂停期间隐藏元素或抵抗transform
动画提供了最佳性能。操纵left
, margin
或width
之类的特性在计算上比调整opacity
更重要。
归功于Nakaya的原始流星动画。
以上是延迟密钥帧动画的新方法的详细内容。更多信息请关注PHP中文网其他相关文章!

文章讨论了CSS保证金属性,特别是“保证金:40px 100px 120px 80px”,其应用程序以及对网页布局的影响。

本文讨论了CSS边境属性,重点是自定义,最佳实践和响应能力。主要论点:边境 - 拉迪乌斯(Border-Radius)对响应式设计最有效。

本文讨论了CSS中评论的使用,详细介绍了单线和多行评论语法。它认为注释可以增强代码可读性,可维护性和协作,但如果无法正确管理,可能会影响网站性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载
最流行的的开源编辑器