我正在尝试制作基于Web的幻灯片演示,并试图找出在幻灯片之间进行过渡的最佳方法。我最初使用jQuery Animate()
,但发现它一点都不平滑。我遇到了GreenSock TweenLite / TweenMax库,并且看到了改进。
不幸的是,事情仍然不是最顺利的。
到目前为止,这是我所拥有的:
http://codepen.io/FluidOfInsanity/pen/PbJbWm
它在Firefox中运行得很好,但在Chrome中却相当挣扎。窗口越大,跳动越多。
我的代码中是否有某些内容导致其过渡不平稳?还是我缺少TweenMax的实现?
非常感谢您的帮助。
更新/回答
最初,我的代码如下:
/* BEFORE UPDATE */
TweenMax.to($('.slide-holder'), speed, {
left: "-=" + xTo,
top: "-=" + yTo,
overwrite: "all"
});
TahirAhmed建议将其从
left
和top
更改为x
和y
。现在我的代码看起来像这样,并且更加流畅:/* AFTER UPDATE */
TweenMax.to($('.slide-holder'), speed, {
x: "-=" + xTo,
y: "-=" + yTo,
overwrite: "all"
});
最佳答案
设置动画时,建议使用x
和y
而不是left
和top
。
参考文献:
为什么使用Translate()移动元素的效果优于Pos:abs顶部/左侧:Link。
高性能动画:Link。
CSS触发器:Link。