有 不少 CSS 动画库。它们往往是一堆类名,您可以根据需要应用它们,例如“bounce”或“slide-right”,它们会… 做这些事情。它们往往具有非常有见地的不错的默认值,而不是专门为自定义而设计。
看起来 AnimXYZ 被设计为高度可定制的,它自称为“第一个可组合的 CSS 动画工具包”。
您可以根据需要使用尽可能多的不同的可组合位来获得所需的进出动画。使用他们的构建器,您将看到类似于以下的输出
<div
class="square-group"
xyz="tall-2 duration-6 ease-out-back stagger-1 skew-left-2 big-25% fade-50% right-5"
>
<div class="square xyz-out"></div>
<div class="square xyz-out"></div>
<div class="square xyz-out"></div>
</div>
类名 xyz-out
变为 xyz-in
以触发相反的动画。
我不喜欢库使用虚构的 HTML 属性来控制自己。Web 标准不太可能在将来使用 xyz
,但谁知道呢,如果这种情况在足够多的生产站点中发生,那么这扇门将永远关闭。但更糟糕的是,它鼓励其他库也这样做。
所有这些属性值都让人想起 Tailwind。要有效地使用 Tailwind,构建过程会运行 PurgeCSS 以删除所有未使用的类,这些类将服务于 Tailwind 提供的完整类集的一小部分。我想到这一点是因为 AnimXYZ 的处理过的样式表是 ~9.7 kB 压缩的,这大于 Tailwind 在其营销页面上用作 示例 的文件大小。重点是,如果使用类,可能会有更直接的方法来清除未使用的类,我敢打赌这会使大小几乎可以忽略不计。也许 JavaScript 框架特定的用法更聪明。
但撇开这些批评不谈,它很酷!不仅有高度可组合的智能默认值,您还可以通过 CSS 自定义属性完全控制。
不要错过网站右下角的 XYZ-ray 按钮,它可以让你看到哪些动画为哪些元素提供动力。它也在文档中,非常棒。
声明式动画确实很不错。 我记得和 Matt Perry 聊天 关于 Framer Motion,并且喜欢它的方法。
哇!我和我兄弟一起创建了 AnimXYZ,看到我们的作品出现在 CSS Tricks 上真是太棒了,谢谢!这是我们的第一个开源库,我们非常高兴根据像这样的反馈不断改进它。
我们要解决的第一件事之一就是文件大小。希望可以使用像 PurgeCSS 这样的东西。我们还将提供一个没有实用程序的 CSS 构建,这样你就可以单独使用核心逻辑和 CSS 变量。
我们已经从一些人那里听说,他们更喜欢将属性设置为
data-xyz
以进行 HTML 验证,我们计划在将来允许这样做。再次感谢您与 CSS Tricks 社区分享 AnimXYZ,我们迫不及待地想听听人们的想法,并看看他们如何使用它!
你也可以试试 metro4,它有非常好的组件,还有一些动画。它比 jquery 更快、更轻。
有人给我写信说这篇文章中的演示对他们根本不起作用。事实证明,经过一些故障排除后,这是 macOS 的“减少运动”设置。该库很好地实现了这一点。
有些人说网站上的动画不起作用,所以我们在文档中添加了一个警报,如果检测到您启用了减少运动,就会显示该警报。