我想将一个简单的 CSS3 动画转换为纯 JavaScript(不是在 jQuery 中,因为我认为为这么简单的事情加载整个库有点过头了)。
bounceInUp
这是关于来自http://daneden.me/animate/的动画。示例演示:http: //jsfiddle.net/ELDf7/
@keyframes bounceInUp {
0% {
opacity: 0;
transform: translateY(2000px);
}
60% {
opacity: 1;
transform: translateY(-30px);
}
80% {
transform: translateY(10px);
}
100% {
transform: translateY(0);
}
}
在http://javascript.info/tutorial/animation,有一个关于如何使用 JavaScript 制作动画的教程。但是我数学不是很好,所以我在 PhotoShop 中制作了一个图表来展示动画应该如何在 JavaScript 中运行(大约):
(可以在此处找到其他“增量”的绘图仪)
是否可以在纯 JavaScript 中从该图中创建一个数学公式,返回动画的“增量”?
我用反弹功能尝试了一些东西,但它并没有真正起作用。( http://jsfiddle.net/ELDf7/2/ )
编辑: 我设法制作了一个很好的数学公式:
-Math.cos(2*Math.PI*progress) + Math.pow(progress, 1) * ((1.5 + 1) * progress - 1.5);
但是现在我遇到了另一个问题,动画从显示一半的图像开始,而不是隐藏整个图像,就像它看起来像 CSS3 动画一样。
有关 JavaScript 动画的现场演示,请参见此处:http: //jsfiddle.net/ELDf7/14/
有谁知道我可以如何更改它以使图像最初完全隐藏?也许可以创建一个包含图像高度的变量,然后 JavaScript 进行计算,以便动画在图像出现一半之前不会开始。