基本声明和用法
@keyframes name-of-animation {
0% { opacity: 0; }
20% { opacity: 1; }
80% { opacity: 0; }
100% { opacity: 1; }
}
.animate-this-element {
animation: name-of-animation 5s infinite;
}
您可以在 @keyframe
动画中使用任意数量的“停止点”,这是关键帧动画的主要优势之一。虽然 CSS transition
只能从一个状态转换到另一个状态,但关键帧动画可以在其时间线上插值多个不同的状态。
如果动画具有相同的起始和结束属性,则可以通过逗号分隔 0% 和 100% 的值来实现。
@keyframes fontbulger {
0%, 100% {
font-size: 10px;
}
50% {
font-size: 12px;
}
}
或者,您始终可以指示动画运行两次(或任何偶数次),并将其方向设置为 alternate
。
使用单独的属性调用关键帧动画
.box {
animation-name: bounce;
animation-duration: 4s; /* or: Xms */
animation-iteration-count: 10;
animation-direction: alternate; /* or: normal */
animation-timing-function: ease-out; /* or: ease, ease-in, ease-in-out, linear, cubic-bezier(x1, y1, x2, y2) */
animation-fill-mode: forwards; /* or: backwards, both, none */
animation-delay: 2s; /* or: Xms */
}
动画简写
只需用空格分隔所有单独的值。顺序无关紧要,除非同时使用持续时间和延迟,则需要按此顺序排列。在下面的示例中,1s = 持续时间,2s = 延迟,3 = 迭代次数。
animation: test 1s 2s 3 alternate backwards;
组合变换和动画
@keyframes infinite-spinning {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
多个动画
您可以使用逗号分隔值来声明选择器上的多个动画。
.animate-this {
animation:
first-animation 2s infinite,
another-animation 1s;
}
steps()
steps()
函数控制动画时间范围内将渲染多少关键帧。假设您声明
@keyframes move {
from { top: 0; left: 0; }
to { top: 100px; left: 100px; }
}
如果您在 动画 中使用 steps(10),它将确保在分配的时间内仅发生 10 个关键帧。
.move {
animation: move 10s steps(10) infinite alternate;
}
计算结果非常清晰。每秒,元素将向左移动 10px 并向下移动 10px,直到动画结束,然后再次反向无限循环。
这对于像 samurai 的这个演示 这样的精灵图动画非常有用。
浏览器支持
此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器从该版本及更高版本开始支持该功能。
桌面
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
4* | 5* | 10 | 12 | 5.1* |
移动/平板电脑
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 4* | 6.0-6.1* |
更多资源
旧的供应商语法
@-webkit-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@-moz-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@-o-keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
@keyframes NAME-YOUR-ANIMATION {
0% { opacity: 0; }
100% { opacity: 1; }
}
#box {
-webkit-animation: NAME-YOUR-ANIMATION 5s infinite; /* Safari 4+ */
-moz-animation: NAME-YOUR-ANIMATION 5s infinite; /* Fx 5+ */
-o-animation: NAME-YOUR-ANIMATION 5s infinite; /* Opera 12+ */
animation: NAME-YOUR-ANIMATION 5s infinite; /* IE 10+, Fx 29+ */
}
从 & 到等于使用 0% 和 100% 吗?
是的!就是这样。
是的..!!
很棒的信息,我真的很喜欢它,非常感谢
是的
如果您使用 0%、50% 和 100%,则可以拥有中间状态。
(例如,0% 无 25% 增长 50% 倾斜 75% 更改颜色 100% 缩小)
您好,Chris Coyier,
这些提示和技巧不错,但如果您包含演示链接,那将更有帮助。让观众可以实时查看效果,您也可以增加潜在的回访流量。
各位 - 这是代码片段部分!实际上,这是网站上唯一没有演示/教程的部分,它纯粹是即用型代码片段……如所述!
字体 Bulger
http://jsfiddle.net/keif/p8ytP/
无限旋转
http://jsfiddle.net/keif/LTvLF/
相信我,学习这些东西最好的方法是尝试构建自己的演示。
对于 JavaScript 框架来说,这一点尤其正确,而 JSFiddle 是一个非常有价值的工具,可以用来快速编写代码来找出各个部分。
嗨,Adam,Spence 想要的功能无法实现,这难道不会有点违背以这种方式进行动画的目的吗?
我遇到了完全相同的问题。关于如何在不使用悬停方法的情况下解决它的任何进一步的想法?
我同意 Hiren 的观点。在代码片段中附加演示(在可能的情况下)会非常好。
同意在代码片段中附加演示。只需一个非常简单的演示即可。
嗨,Chris,您可以使用 -webkit-animation-delay 来延迟效果。
嘿,Chris,延迟可以在此处找到
http://css-infos.net/property/-webkit-animation-delay
您还可以使用简写形式在一步骤中设置多个声明
http://css-infos.net/property/-webkit-animation
干杯!
Atg
只是在试验,我发现 webkit 延迟语法是
“-webkit-animation-delay: 5s;”
非常简单!
您好,非常感谢您提供的代码片段。请问有人可以帮我解决以下不透明度动画问题吗?
div 层最初是不可见的,然后动画将其设置为完全可见(延迟 2 秒后),并保持该状态。
目前,使用上面的代码(包括延迟代码),我只能得到以下结果:
div 层最初是可见的,然后动画将其设置为(闪烁不可见,然后动画)完全可见(延迟 2 秒后),并保持该状态。
如果我在 div 上添加 opacity: 0;,则会发生以下情况:
div 层最初是不可见的,然后动画将其设置为完全可见(延迟 2 秒后),然后恢复到不可见。
我尝试的操作是否可行,还是我犯错了?
非常感谢。
嗨,Spence –
我认为您想要实现的效果只有在悬停/状态更改时才可能实现。以下是实现方法:
1. 将动画属性应用于您要设置动画的元素,例如:
.box {
-webkit-transition: all 0.2s ease-in-out;
}
2. 悬停时
.box:hover {
background: red;
}
就是这样!根据需要进行更改。
Adam,Spence 想要实现的功能无法实现,这是否有点违背了这种动画方式的初衷呢?
我遇到了完全相同的问题。关于如何在不使用悬停方法的情况下解决它的任何进一步的想法?
嗨,Spence,
我碰巧也在思考同样的问题,然后发现了这个页面:
http://css3animator.com/2010/12/how-to-control-your-css3-animations/
我认为这就是您想要的,您需要使用 forwards 使动画的最后一个关键帧保持不变,从而使其看起来像某个东西出现了。
我还发现,如果您使用 from 和 to,此行为是默认的,但如果您想使用多个关键帧状态,则它会默认恢复到其原始状态,除非您指定 fill-mode。
希望对您有所帮助。
m。
只需使用 -webkit-animation-iteration-count: 1; 即可。
不错!
谢谢 Mairead
很酷的教程
谢谢
嘿,Chris!非常有用的代码片段!您的博客越来越棒了=)
无论如何,“has the same starting…” 中您错误地重复了 “has the same”。
谢谢!
谢谢,已修复!
大家好!
我是 CSS 新手,遇到了一些问题!我有“2”张 70px x 70px 的图片,我想让“1”保持静止,让“2”旋转。图片“2”只有一个点,图片“1”有一个内圆和一个外圆。所以我想让这个小点在内圆和外圆之间旋转。到目前为止,我已经实现了旋转,但点会旋转到屏幕外!我不知道是旋转阶段的问题,还是没有正确使用边距,或者透视原点不存在,或者以上都不是。提前感谢您的帮助,并希望有人能理解我的意思。
嗨,Lee,
看起来您需要为旋转定义一个不同的中心点。当您使用 -webkit-transform: rotate() 时,可以使用 -webkit-transform-origin 为 2D 和 3D 旋转定义中心点(http://css-infos.net/property/-webkit-transform-origin)
这真是太好了!感谢大家分享。我现在就去试试:)
我已经记不清我回来过这个页面多少次了。一篇很棒、简单的文章。
大家好!
如何覆盖已设置的 @keyframe 动画?我无法确定是否可以实现(使用 Chrome)。
我来解释一下
我开发了一个 Web 应用程序,其中使用了多个 CSS3 功能和用于 UI 交互的 @keyframes 命名集。我的应用程序可以通过不同的连接用户进行自定义。自定义是通过导入覆盖某些颜色和布局的 css 文件来完成的。我希望了解 CSS3 强大功能的人能够覆盖我的标准动画(通过 JavaScript 触发)。但看起来,如果您使用相同的名称编写第二个 @keyframes,则第二个定义会被忽略。
对此有什么帮助吗?
喜欢它!
内容不错,但网站颜色很单调,旧版网站的颜色方面要好得多。
谢谢 Chris。喜欢它。
我在 IE8 中无法加载此页面。加载时间过长……
嗨,Jack
我意识到,从 Web 设计的角度来看,您在这里发表评论已经很久了,但我想知道您是否找到了解决方案。我已经遇到了一个多星期的问题,但找不到答案。
经过多次尝试和错误,IE8 似乎根本不会忽略关键帧,因此它会放弃并冻结。
我尝试在条件注释中隐藏动画,只将其提供给 IE9+ 和所有其他浏览器。这按预期工作,但正如您可能知道的,IE10 不支持条件注释!
任何帮助将不胜感激……
嗨,大家好,我想能够控制“帧”,所以我在一个 CSS 精灵中创建了 5 个帧。它们代表每个状态。我想让它们在指定的时间内播放,而不需要中间的平滑运动,我只是想让它在指定的时间内从一个帧切换到另一个帧。我很难解释清楚,但 Flash 可以很容易地做到这一点。
嘿,Chris,我认为您需要使用 step-start 属性。我在此动画中使用了它(http://codepen.io/ScottJH/full/IAyEp)。我知道这条评论已经过了一年多了,但嘿,如果我能有所贡献,我想我会贡献的。
您好,Chris,
我发现您的网站非常有用。我从您的网站上学习并实现了许多新想法。
当我学习到这个特定的动画技巧——关键帧的使用时,我感到非常兴奋。我在我的网站ABAP Help上实现了这个功能,当人们将鼠标悬停在“Archives”上时,会高亮显示它。
再次感谢您提供的所有这些教程。
此致,
Naimesh Patel
我有一个关于组合动画的问题——当我尝试以下操作时,在刷新时会随机出现“leaffall”或“drop”。我原本期望两者同时发生。
有人遇到过这个问题吗?
非常感谢您提供此代码片段,Chris。
来自巴西的问候!
这太棒了!我之前一直避免使用 CSS3 动画,因为我认为语法太复杂了,但您让它变得很容易理解。谢谢。
对于无限循环,您可以将“to”值更改为 359deg 以防止它停止。
太棒了,非常容易理解,非常感谢您提供如此精彩的教程。我想知道如果我想在一个句子之后再进行另一个动画(例如:文本动画 - 渐变),如何实现?我们在创建演示文稿时会进行类似的文本动画。
“顺序无关紧要,除非同时使用 duration 和 delay,它们需要按此顺序排列。在下面的示例中,1s = duration,2s = delay,3 = iterations。”
如果将迭代次数设置为无限,则此方法无效。
“无限”应该放在最后面,不是吗?
感谢这些有用的代码片段! :)
需要注意的是,如果元素通过 jQuery 或其他方式被修改,关键帧序列将被有效地“重置”。例如,播放器上播放按钮的边框颜色循环的关键帧,在按钮从“播放”切换到“暂停”时每次都会重置。
@keyframes change_border
{
0% {border-color: #202424;}
25% {border-color: #a09b8c;}
75% {border-color: #69707d;}
100% {border-color: #737e88;}
}
div#player_control {
animation: change_border 66s infinite;
animation-direction:alternate;
-moz-animation: change_border 66s infinite;
-moz-animation-direction:alternate;
-webkit-animation: change_border 66s infinite;
-webkit-animation-direction:alternate;
}
每次 #player_control 层被修改时,这种“无限”的变色序列都会被中断。当其他一些东西也与这个动画序列相关联,但不受中断影响时,这是不可取的。也可能仅仅是不可取的。
我也遇到过同样的问题。我在页面加载时为一些列表元素设置动画,以便它们从侧面一个接一个地飞入,然后它们成为导航。悬停时,列表元素中的文本会稍微向侧面抖动,但在悬停效果后返回到默认状态时,动画会再次排队,列表元素会再次从侧面飞入。非常讨厌。
你,或者其他人找到了解决方法吗?
感谢你的脚本。
效果很好 :)
谢谢。
如果在百分比中指定了两个以上的状态,Android 2.2 似乎无法很好地执行。
a.) 这不起作用
b.) 这起作用
如果你在 WebKit 浏览器(例如 Safari)中更改用户代理或使用 Android SDK 工具,你将无法发现问题。错误似乎只出现在特定的 Android 2.2 设备上。
测试设备
HTC Wildfire
Mozilla/5.0 (Linux; U; Android 2.2.1; sv-se; HTC Wildfire Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
HTC Evo
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
谢谢“pirohy”
你有一些最好的 CSS 提示。你的说明通常比 W3 学校的说明更好(更详细和高级),我感谢你的高质量文章 Chris。谢谢。
有没有办法将动画指向另一个 div?比如你做一个像按钮一样的 div 来让另一个 div 执行动作?
在这个例子中,我试图让当我在黑色方块上悬停时,白色方块移开。我以前没见过用纯 CSS 触发一个 div 的动画来控制另一个 div 的方法,至少没有。
没关系,我搞定了。
通过将 .blackbox:hover 和 .whitebox 放在同一个选择器中,它就能按我想要的方式工作了。
顺便说一句,很棒的代码片段。非常有帮助。
你可以使用嵌套和兄弟选择器来实现。你可以将这两个元素放在一个容器 div 中,当你想要白色方块移动时,将选择器设置为类似以下内容
HTML
CSS
你可以使用过渡,或者如果它不像过渡那样简单,你可以像动画一样排队。
如何将动画参数设置为页面加载时元素的参数?
例如
所以这里发生的事情是元素会出现在屏幕上,然后 2 秒后它会消失并运行动画。预期效果是它在页面加载 2 秒后动画开始前,以不透明度 0 的状态显示。
我是否遗漏了某个属性?
典型!当然,我在发布前搜索了很久,然后发布后 2 分钟我继续寻找并找到了答案!
animation-fill-mode: backwards;
是解决方案。
我创建了这个网站 http://www.css3builder.com,它通过自动计算关键帧等来自动化 CSS3 画廊的创建。你可以在不到 1 分钟的时间内为所有浏览器创建一个。
需要注意的是,即将推出的 IE10 将支持没有前缀的关键帧语法。因此,由于 IE9 不支持关键帧动画,并且由于没有人会使用“IE10pp”或任何其他东西,因此所有示例现在都应该省略“-ms-”部分。
此外,此页面上的所有示例都应更新为包含标准语法,以用于 IE10、即将推出的 FF16 和最终将支持无前缀关键帧动画的其他浏览器。
页面已更新!感谢 Louis。
Android 浏览器 2.2 支持它吗?
我有一个无限循环的动画。有没有办法在循环之间设置间隔?
属性“animation-delay”只是在动画开始前添加一个延迟,然后在没有延迟的情况下循环。
我知道我可以使用简单的“setInterval”脚本来解决,但我正在尝试确定是否有任何方法可以在不使用该脚本的情况下达到预期的结果。
当 iOS 设备正在完成动画 #1,并且用户在动画 #2 开始前向下滚动时,它将根本不会加载设置为稍后加载的动画……有任何解决方法吗?
嘿,如果你能包含
steps()
定时函数那就太好了。例如,你可以在此处查看更多详细信息https://hacks.mozilla.ac.cn/2011/09/taking-steps-with-css-animations/
你好 Chris,对于基本的动画,你可以使用简单的代码
.box{
background: white;
-webkit-transition: background 5s;
}
.box:hover{
background: olive;
-webkit-transition: background 1s;
}
我认为以前没有人问过这个问题
如何在 SASS(或者 LESS)中使用
@-webkit-keyframes
语法,其中@
是一个特殊字符?兄弟,在哪里可以测试将此代码应用到我的网站中?
例如沙盒/试驾?
感谢你的内容。
这是一篇非常有帮助的文章。只是想知道如何在 js 中包含音频,以便它与播放/重置按钮同步?
这是一个使用 CSS3 关键帧动画完全完成的菲力克斯猫“魔术袋”剧集示例。仅针对 WebKit 浏览器实现。没有 JS,只有纯 CSS3
http://pikcle.com/felix/
我找不到任何明显的延迟我循环动画的“结束”的方法(在这种情况下,从左到右)。
最终使用了
<
pre>
@-webkit-keyframes pan {
0%, 10% { -webkit-transform: translate3d( 0%, 0px, 0px); }
90%, 100% { -webkit-transform: translate3d(-50%, 0px, 0px); }
}
只是有点烦人,必须有一个假的动画持续时间来考虑延迟。
大家好
是否可以将 2 个动画组合到一个目标上?例如,旋转一个菜单并在菜单时间内更改其字体大小?请告诉我。 :)
是的,可以
我在这里使用了大量的动画 http://pikcle.com/felix/,仅适用于 WebKit 浏览器,已将多种类型的动画组合到单个目标上 :)
谢谢 Melwyn… 我会尝试一下… :)
我认为值得指出的是,除了
normal
和alternate
之外,animation-direction
还有其他属性;这些属性是reverse
和alternate-reverse
。MDN 文档包含所有可能的取值,但其浏览器兼容性列表看起来有点过时了。如果有人能确认这些属性的浏览器支持情况,我相信 Mozilla 会非常感激 :)
谢谢
使用 content 属性创建动画实际上可能吗?例如……
谢谢
我最近遇到了这个问题。没有浏览器支持它,但根据规范编写者,他们应该支持,并最终会赶上。
是的,我认为目前“解决方案”是在“...”上应用一个遮罩,并将其动画化以覆盖最后一个字符、最后两个字符,依此类推。
有人知道如何防止在浏览器调整大小并跨越断点时触发关键帧动画吗?页面加载时呢?
我们有一个无限循环的动画。有没有办法在循环之间设置一个间隔?
“animation-delay” 属性只表示动画开始前的延迟,然后循环不会有延迟。
我知道我可以用简单的“setInterval”软件来解决,但我正在寻找是否有任何方法在没有它的情况下达到预期的结果。
嗨,我想让多个元素(div)具有不同的动画。就像你下面看到的 .item1 一样。但是我想为另一个项目(例如:.item2,带有不同的滑动动画/位置)制作动画,但是如何为不同的元素分配不同的动画呢?希望有人能帮忙!谢谢!
.item1 {
position: absolute;
background:url(../img/item.png) 0 0 no-repeat;
top: -900px;
width: 400px;
height: 887px;
-webkit-animation: slide 0.5s forwards;
-webkit-animation-delay: 0.5s;
animation: slide 0.5s forwards;
animation-delay: 2s;
animation-name: slide;
}
@-webkit-keyframes slide {
100% { top: -300px; }
}
@keyframes slide {
100% { top: -300px; }
}
你好!我现在有类似这样的东西:但我不确定这是否是正确的方法(将其命名为 slide 1 和 slide 2)……
有人知道 Compass/Sass 是否内置支持关键帧动画吗?
我相信它们有支持,但我使用了一些我编写的简单混合。
感谢分享 Josh!
我可以在 javascript 中获取 webkitAnimationDuration(javascript)的等效项,以实现 mozilla 和 safari 浏览器 的相同支持。
顺序无关紧要,除非同时使用 duration 和 delay,则它们需要按此顺序排列。在下面的示例中,1s = duration,2s = delay,3 = iterations。”
如果将迭代次数设置为无限,则此方法无效。
“无限”应该放在最后面,不是吗?
感谢这些有用的代码片段! :)
我创建了一个演示。查看一下
http://jsbin.com/alOPUko/11/edit
感谢管理员。这是一篇非常有用的文章。只是想知道如何在 js 中包含音频,以便它与播放/重置按钮同步?
祝你好运……继续努力
不错的资源,亲爱的,但是有没有办法防止在浏览器调整大小并跨越断点时触发关键帧动画?页面加载时呢?
我试图将此代码与另一段 css 代码混合,但我遇到的问题是在运行时只有一段代码显示效果,而另一段代码则没有显示。
创建简化的测试用例是解决此类问题的最佳方法。
我可以在 javascript 中获取 webkitAnimationDuration(javascript)的等效项,以实现 mozilla 和 safari 浏览器在 javascript 中的相同支持。
顺便说一句,感谢您提供如此棒的教程。
这正是我一直在寻找的……实现起来如此简单,伙计……干得好,看起来也很酷 :)
只是在试验,我发现 webkit 延迟语法是
“-webkit-animation-delay: 5s;”
非常简单!
http://www.results-2014.com/
任何想要在动画的无限/循环之间设置时间间隔的人,请按照这个 Stackoverflow 解决方案操作
http://stackoverflow.com/questions/18812055/css-animation-with-time-interval
快乐的 CSS3 动画!
干得好,这正是我一直在寻找的,CSS3 动画很难,因为对我来说语法非常困难,但你做了一项很棒的工作,你只是用一种简单的方式让其他人理解。感谢分享。
有人知道如何防止在浏览器调整大小并跨越断点时触发关键帧动画吗?页面加载时呢?
在这里遇到问题
http://www.resultsnews.com/
有没有办法在浏览器调整大小时停止关键帧动画的触发?我的网站上遇到了问题 http://bit.ly/1j84UFh
在这里制作了一个动画 http://jsfiddle.net/ipsjolly/DDT9b/
但它不够流畅。当它从一个帧进入另一个帧时,它会有点卡顿。我该如何使其更像 糖果粉碎传奇 中的按钮那样具有果冻质感。
我正在创建一个角色动画,该角色必须在左右移动头部,同时打开和关闭他的手。
在 CSS 中,我认为一个动画有两个输入,并且两者都具有 fill-mode 参数值 forwards。这将使第一个动画正常运行,但第二个动画永远不会执行。如果我删除第一个动画的 forwards,则第二个动画将正常运行,但第一个动画会突然结束并返回到其起始点。
谁能告诉我如何解决这个问题。
这是我的 css 代码
[管理员注释]:删除大型代码段 - 随时发布到 CodePen 上的 Pen 链接。
该网站非常好,对初学者非常有帮助
我再次来到了这个页面,
嘿 Chris,你是否知道如何创建一些魔法混合,它可以创建 CSS3 关键帧动画,包括 CSS3 浏览器供应商前缀?
我曾经尝试过使用互联网上的一些混合,它产生了如下内容,我想在 @-webkit 下忽略所有其他与浏览器相关的代码。
@-webkit-keyframes hover-icon {
0% {
-webkit-transform: scale(1, 1);
-moz-transform: scale(1, 1);
-ms-transform: scale(1, 1);
-o-transform: scale(1, 1);
transform: scale(1, 1);
}
100% {
-webkit-transform: scale(1.2, 1.2);
-moz-transform: scale(1.2, 1.2);
-ms-transform: scale(1.2, 1.2);
-o-transform: scale(1.2, 1.2);
transform: scale(1.2, 1.2);
}
}
这是你想要的:http://leaverou.github.io/prefixfree/
有人知道如何防止在浏览器调整大小并跨越断点时触发关键帧动画吗?页面加载时呢?
谢谢 Chris!我每次有问题时,你总是在那里。再次感谢!!
非常感谢您的演示。这解决了我在 IE 中遇到的动画问题。
这是一个极其重要的细节。
Internet Explorer无权宣称符合W3C标准规范。
这需要更新。
说真的,Internet Explorer 长期以来一直是每个 Web 开发人员的梦魇,他们不应该宣称该评论。不应该混淆,即使只是一秒钟,Internet Explorer 是任何现代 CSS 标准存在的原因。
该评论应该为
[1]: Firefox 16+,IE 10+。
嗨,Chris,您可以使用 -webkit-animation-delay 来延迟效果。如果您能添加演示,效果会更好。
嗨,我需要使用 4 个圆圈制作波纹效果。你们能用 CSS3 帮我实现一下吗?提前感谢。
我不认为它是这样工作的。
非常感谢这个。与 HTML5 视频配合使用效果很好,只需记住 -webkit 前缀即可。
您不将重复的声明压缩成逗号分隔的选择器是否有原因?例如
如果我们可以像 CSS 选择器一样捆绑各种 @keyframes(以节省重复),那就太好了。
@keyframes A, @-webkit-keyframes A, @-o-keyframes A {
… opacity: 1; … /*无 [-*-]transform…*/
}
但显然它不起作用,它不被识别,我试过了…
(以防其他人有同样的想法)
它在所有浏览器上都能正常使用缩放功能。
但在 Safari(所有版本)上,当您进行缩放时,它就会中断。
任何人都能提供任何修复建议吗?拜托了。
非常感谢。
忘记在这里放置您在上面发布的演示链接了。
http://jsfiddle.net/simurai/CGmCe/light/
Safari 缩放的任何修复方法?
这个关键帧滑动是一个有趣的工具,但我只能找到它在图像中使用的示例。是否可以使用此框架仅对文本进行颜色更改滑动?我的意思是像在 p 或 span 类句子中的文本,它只影响文本而没有背景效果。
看起来 Safari 9 在声明关键帧时存在“0% {}”问题。因此,如果我们有只有 2 个关键帧的简单动画,我们可以使用“from”和“to”。或者我们可以简单地使用“0”代替“0%”。
嗨,Chris。在关键帧命名声明中包含数字可以吗?例如 banner_circle_10、banner_circle_11 或者应该是 banner_circle_ten、banner_circle_eleven 等?
这并没有真正解释任何内容……它只是给出了一些示例,而没有解释它们是如何或为什么工作的,或者规则是什么。什么是关键帧,以及何时/为什么要使用它?如何?什么?
您需要了解的具体内容是什么?
有一个地方可以提问……
谢谢!这仍然是一篇非常有效且有用的文章!
请允许我指出属性表中的一点错误。
“duration-count” 应为“iteration-count”。
我正在使用文本调整大小,它在 Safari 中无法正确动画。
文本在动画之前闪烁到一个较大的尺寸。Safari 在动画字体大小方面是否存在一些故障?Firefox 或 Chrome 没有问题。
@keyframes 的声明是在调用它们之前还是之后是否有关系?
我 99% 确定没有关系。
嗨!
这正是我一直在寻找的。它在 Chrome 中运行良好,但在 IE11 中却什么也没有。
我在 div 中放了一些文本——文本显示了,但周围没有背景颜色或框架。
HTML 文件中是否缺少某些内容才能使其正常工作?
是否有方法在没有 from/to 或百分比的情况下声明帧?不得不计算百分比并在添加帧时更改所有百分比非常烦人。
嗨,大家好,我正在使用从 0deg 到 360deg 的动画,因此对象旋转 360 度,但我希望它在保持静止不围绕圆圈移动的情况下作为动画旋转,有什么提示吗?
我正在使用 transform 关键帧动画。但是,上面部分和此部分是视差,当发生缩放时,底部会出现奇怪的空间。即使设置了高度、overflow:hidden 等。这是否只是与多个视差部分配合使用效果不佳?
使用“keyframes”键的前缀是否有或曾经有过任何原因?我找不到任何可以添加“keyframes”前缀的前缀器,包括 Sass。
您可以使用它来动画化渐变背景上的百分比步骤吗?
我正在尝试制作一种“闪光”效果,使细长的渐变白色高光从 LI 项目的一侧运行到另一侧,就像有人在晚上将车开进车道时,他们的车灯照亮了您的房间。
您好,请问如何在某个关键帧处停止动画并在下一个关键帧处继续?如果我想将多个动画连接起来——我需要停止一个并继续下一个。
非常感谢,很棒的文章,我终于找到了最好的 CSS 动画教程。
如果关键帧包含 transform,则应如何添加前缀?根据 ShouldIPrefix.com,我们只需要在 animation 中使用 -webkit,并且在 transform 中需要 -webkit 和 -ms。
我以前从未见过这样的教程。不得不说,它在这里提供的视觉效果足以让一个人理解动画编码。