我需要以50px的步长在屏幕上平移元素。假设每次点击时,元素都会向右移动50px。

如何更正以下代码?

http://jsfiddle.net/vujMV/13/

在这里,它每次跳50px,然后转换50px,每次点击总计100px。我需要对移动进行硬件加速(因为它将被部署在移动平台上),因此我将需要使用translate()。

最佳答案

只需注释掉最后两行。这些是导致最初的50px跳跃的原因:

//left += 50;
//move.style.left = left+"px";


编辑
为了使它每次单击都可以工作,您需要相对于当前属性更改translate3d属性,而不是.offset属性,因为注释掉上述各行后,该属性就不再更改。

这是一个工作示例:http://jsfiddle.net/vujMV/16/

关于javascript - CSS3-分步在屏幕上翻译元素吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8869392/

10-12 06:02