我有一个div绝对定位在顶部:0px和右:0px,我想使用jquery的.animate()来动画它从它的当前位置到左边:0px。如何做到这一点?我似乎不能得到这个工作:
$("#coolDiv").animate({"left":"0px"},"slow");
为什么这不工作,如何完成我想要做什么?
谢谢!!
解决方法
我认为它不工作的原因与事实,你有正确的位置设置,但不是左。
如果你手动设置左边的当前位置,似乎去:
Live示例:http://jsfiddle.net/XqqtN/
var left = $('#coolDiv').offset().left; // Get the calculated left position $("#coolDiv").css({left:left}) // Set the left to its calculated position .animate({"left":"0px"},"slow");
编辑:
看起来好像Firefox的行为与预期的一样,因为它计算的左位置可用作正确的值(以像素为单位),而基于Webkit的浏览器和显然IE的返回值为auto的左位置。
因为auto不是动画的开始位置,所以动画有效地从0到0。不是非常有趣的观看。 :o)
在动画处理之前手动设置左侧位置可以解决问题。
如果你不喜欢用变量来整理景观,这里是一个很好的版本的同一个东西,避免了一个变量的需要:
$("#coolDiv").css('left',function(){ return $(this).offset().left; }) .animate({"left":"0px"},"slow");