使用CSS以恒定量翻译元素以获得更流畅的动画效果?

时间:2014-05-19 17:14:17

标签: javascript jquery css html5 animation

是否可以使用CSS将元素转换为常量?例如,我们希望在屏幕上以50像素为单位移动div。现在,我们使用手动更新翻译值,但这会产生不稳定的影响。

这是代码,其中translate等于每次调用此行时递增50的值:

$(element).css( '-webkit-transform', 'translate3d( 0, ' + translate + 'px, 0)' );

我们需要在移动设备上进行此项工作,因此我们无法使用jQuery animate,因为它在移动设备上不够流畅(根据我们的经验)。我们需要翻译一个恒定的数量,因为我们需要跟踪元素的位置,所以我们每X ms调用一次翻译代码。

2 个答案:

答案 0 :(得分:1)

我不是经常触发重复的动画,而是设置一个具有适当值的动画,然后在循环中设置detect the current position,而不是尝试在其中进行动画。来自链接问题的This updated example似乎表明它可行。

如果它们比简单的上/下更复杂,您可能想要询问transform property以获取当前的翻译值。你应该得到一个看起来像这样的值:

matrix(1, 0, 0, 1, 0, 300)

答案 1 :(得分:0)

有几个jQuery插件可以扩展animate方法以使用CSS3,并使动画在移动设备上非常流畅。

我过去曾使用过几个插件,不记得我使用过的插件,但谷歌快速搜索给了我这个插件:

http://ricostacruz.com/jquery.transit/

这将是这样的:

$(element).transition({ y: '+=50' });