延迟密钥帧动画的新方法
在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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

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

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
