我一直在做需要平滑过渡和动画的项目。我们最近几乎 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 很满意,但想学习任何可以提供最流畅的最佳动画的方法,并寻求指导。