2011-12-12 81 views
1

我有一个机器人图像,我试图用JQuery移动到屏幕左侧。 DIV的定位,像这样:jquery动画 - div跳转?

#robot{ 
    position:fixed; 
    margin-left:800px; 
    bottom:-40px; 
} 

因此,它基本上是在底部中间。然后我动画:

$('#robot').animate({left:"-=1000px"},12000,"linear", stopRobotTimer); 

它的工作原理,但是一旦有生开始,机器人跳约200 pixels left,然后开始了12秒的动画。

+1

看看你是否有一个填充/边缘阻碍。看看这篇文章,了解更多关于这个特定类型的问题:http://jqueryfordesigners.com/animation-jump-quick-tip/。 – JesseBuesking

回答

0

您是否尝试过直接设置预期的终点?

$('#robot').animate({left:"-200px"},12000,"linear", stopRobotTimer); 

你这样做 - =这应该只是导致-200在这种情况下,因为它是在你的css中定义的。

编辑

我的错 - 我忘了提及你要么应该改变你的CSS delclaration至左:800像素;或者将您的动画语句更改为:

$('#robot')。animate({marginLeft:“ - 200px”},12000,“linear”,stopRobotTimer);

事业开始你的CSS不指定“左”它,而不是指定的“保证金左”

0

当您使用-=1000,首先你改变left然后开始动画。试着改变它像下面这样

$('#robot').animate({left:"=-200px"},12000,"linear", stopRobotTimer);