【发布时间】:2015-02-06 00:12:49
【问题描述】:
我一直在做需要平滑过渡和动画的项目。我们最近几乎 100% 的时间从使用 Javascript 迁移到 CSS 动画。
我发现使用 translate3d 可以在移动设备和桌面设备上提供非常流畅漂亮的动画。
我现在的动画风格是这样的:
CSS:
.animation-up{
transform: translate3d(0, -100%, 0);
}
.animation-down{
transform: translate3d(0, 100%, 0);
}
.animation-left{
tranform: translate3d(-100%, 0, 0);
}
.animation-right{
tranform: translate3d(-100%, 0, 0);
}
最近,我开始研究似乎引起了很多关注的不同框架。两个在特定的 GreenSock (http://greensock.com/tweenmax) 和 Famo.us (http://famo.us)。两者都显示出惊人的帧速率和惊人的性能。
我注意到他们正在使用矩阵变换。
Greensock 示例(使用矩阵):
<div class="box green" style="transform: matrix(1, 0, 0, 1, 0, 100);"></div>
Famo.us 示例(使用 3D 矩阵):
<div class="famous-surface" style="transform-origin: 0% 0% 0px; transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 149, 385, 0, 1);"></div>
我的问题是... translate3d 和矩阵有什么区别?使用矩阵比 translate3D 有很大的改进吗?还有其他方法可以产生更好的结果吗?
我对 translate3D 很满意,但想学习任何可以提供最流畅的最佳动画的方法,并寻求指导。
【问题讨论】:
标签: css css-animations css-transforms translate3d