Javascript 关于动画和数据的两个jquery问题

Javascript 关于动画和数据的两个jquery问题,javascript,jquery,internet-explorer,jquery-animate,Javascript,Jquery,Internet Explorer,Jquery Animate,我正在制作一个照片库。我遇到的第一个问题是$.data。当我通过插件设置图像时,我会执行以下操作: $('.img').each(function(){ $(this).data('original', { width:$(this).width(), height:$(this).height() }); }); $(this).animate({ 'width':$(this).data('original').width, 'height':$(this).data('origina

我正在制作一个照片库。我遇到的第一个问题是
$.data
。当我通过插件设置图像时,我会执行以下操作:

$('.img').each(function(){
  $(this).data('original', { width:$(this).width(), height:$(this).height() });
});
$(this).animate({ 'width':$(this).data('original').width, 'height':$(this).data('original').height });
然后,当我想将图像设置为其全尺寸时,我会执行以下操作:

$('.img').each(function(){
  $(this).data('original', { width:$(this).width(), height:$(this).height() });
});
$(this).animate({ 'width':$(this).data('original').width, 'height':$(this).data('original').height });
现在这在IE和firefox中运行良好,但我刚刚在safari和chrome中测试过,值为零,但在firefox中,它的宽度和高度都正确。你知道为什么会这样吗

第二个问题是internet explorer中的滚动动画。基本上,我只有一个带有溢出的包装器:隐藏和一个容器,其中包含画廊行(其中有大约50个图像)。现在我有两个按钮用于下一个和上一个。它们的代码基本上是这样的:

$('#container').animate({ 'left':'+=400px' }, 2000);

现在在google chrome和safari中,这个动画表现得非常漂亮。在firefox中,它有点迟钝,但没有什么是我无法忍受的。然而,在IE中,你甚至看不到动画。你能真正看到的就是跳到动画的最后一个位置,然后稍微移动一点(到达终点)。你知道是什么原因造成的吗?

你问题的第一部分已经讨论过了


我想你问题的第二部分之所以会出现,是因为IE在DOM操作方面速度较慢。

谢谢你,修复了我关于宽度和高度的问题。但是,我知道它比较慢,但是你甚至看不到它的动画。它只是跳到结尾,在结尾处做一个小动作,这是不对的。我知道IE有一些奇怪的行为,如果你的CSS中没有你正在动画的属性的起始点。我刚在IE8上试过,看起来很流畅。