我使用此代码:
$("img.cloudcarousel").each(function(i, e){
coords[i] = $(e).offset();
});
保存图像的位置(并且有效)。 然后我给它们制作动画并移动它们。 然后我使用这段代码:
$("img.cloudcarousel").each(function(i, e){
$(e).animate({top:coords[i].top, left:coords[i].left}, 1000);
});
将它们动画回原来的位置。 在IE浏览器中(至少8个)它工作正常,但在Chrome和Firefox中,它向左和向下动画40-50像素(就像它过度动画一样)。
不要问我怎么发现这个:当我用鼠标轮转过来时,他们会去他们所属的地方!
我想它与动画队列的构建有某种关系,但是我只使用了四个图像,并且在x时间之后它不能自行修复,只能在鼠标轮上进行修复。
编辑:添加到jsfiddle.net
我不确定该网站是如何运作的,但我将HTML和JS添加到其中:
答案 0 :(得分:3)
$(e).offset()不返回当前在小提琴中定义的值。我没有查找偏移的定义但是如果输出坐标,你会看到它与代码中的不一样
编辑:我看到问题见offset()http://api.jquery.com/offset/它返回相对于文档BUT的x,y,当你动画回来时它相对于父元素(默认行为)。所以在文档中提到了使用position()。这是相对于父元素,我没有尝试过,但如果你使用它,它应该工作。
最终编辑:对于位置,请参阅http://jsfiddle.net/3wqYg/1/,你必须将其复制到测试页面,因为它不会在小提琴上制作动画