我认为它不工作的原因与事实,你有正确的位置设置,但不是左。
如果你手动设置左边的当前位置,似乎去:
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");