- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望使用纯 CSS 为逼真的移动对象制作动画。具体来说:
据我所知,CSS 中的流畅动画目前只能通过使用三次贝塞尔曲线来实现:
https://developer.mozilla.org/en-US/docs/Web/CSS/timing-function
我发现下落可以通过 cubic-bezier(0.33, 0, 0.66, 0.33)
和 cubic-bezier(0.33, 0.66, 0.66, 1) 精确建模)
可以在这里看到向上反弹:
http://jsfiddle.net/BYossarian/Frg74/2/
有谁知道 (2) 和/或 (3) 的最佳贝塞尔曲线?如果有人对任何其他类型的物理运动有任何意见,那也很好。
如果需要,我可以目测一下,但我希望有人可能已经有了。
最佳答案
好的,所以我一直在玩这个,并完成了振动。正如我所预料的那样,我必须将一堆贝塞尔曲线拼凑在一起才能使其工作:
http://jsfiddle.net/BYossarian/wrK44/6/ (仅限 webkit 前缀)
红球是CSS动画,灰框是JS动画,引用。单击容器以启动/停止。
动画的 CSS(无前缀)是:
.vibrate {
animation: shm 2s infinite alternate;
}
@keyframes shm {
from {
margin-left:0px;
animation-timing-function: cubic-bezier(0.25, 0.01, 0.55, 0.16);
}
25% {
margin-left:29.3px;
animation-timing-function: cubic-bezier(0.52, 0.44, 0.47, 0.44);
}
50% {
margin-left:100px;
animation-timing-function: cubic-bezier(0.53, 0.56, 0.48, 0.56);
}
75% {
margin-left:170.7px;
animation-timing-function: cubic-bezier(0.45, 0.84, 0.75, 0.99);
}
to {
margin-left:200px;
}
}
注意事项:
animation-duration
是球从一个边缘移动到另一个边缘的时间(回程通过设置 animation-direction: alternate;
), 所以上面的对象做一个完整的循环所花费的时间是4s。更新:好的,所以我终于找到时间进行流畅的运动:
http://jsfiddle.net/S7WRp/ (同样,仅限 webkit 前缀)
点击开始。第一个球是通过 JS 动画的。其次是CSS动画。第三个和第四个都以恒定速度(其他球的最终速度)行进并用作引用,因此您可以看到前两个球在开始时加速,然后在最后达到最终速度。
CSS:
@keyframes fluidDrop {
from {
top: 0px;
animation-timing-function: cubic-bezier(0.7, 0.22, 0.725, 0.61);
}
13.33% {
top: 31.79px;
animation-timing-function: cubic-bezier(0.16, 0.1875, 0.24, 0.094);
}
23.66% {
top: 88.3px;
animation-timing-function: cubic-bezier(0.234, 0.15, 0.88, 0.85);
}
65% {
top: 441.5px;
animation-timing-function: linear;
}
to {
top: 800px;
}
}
更多注释:
top
值以匹配您希望对象下落的距离。现在,它下降了 800 像素的距离,因此,例如,如果您希望它下降 1600 像素的距离,您可以将所有关键帧的所有 top
值乘以 2。关于用于坠落、振动等的 CSS 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18900414/
我正在Windows 8上构建一个相当简单的Meteor项目,尽管重新安装了meteor,并手动重新设置了库,但应用程序运行了很短一段时间后,meteor就会崩溃并且不会重新启动。 Meteor 也无
我正在尝试使用 React.js 在 Meteor 中做一个简单的 hello world。当我尝试运行应用程序时,它因“ReferenceError:文档未定义”而崩溃。这个错误对我来说没有意义,文
这是我的 Player 类(我想在空格键上跳转的对象),我只是不知道从哪里开始,是否有任何我可以在互联网上阅读的相关资源大部头书?任何帮助都很棒,谢谢。 package com.zetcode; im
我是一名优秀的程序员,十分优秀!