Jquery Chrome中的动画跳跃
我用一个简单的jQuery动画在mouseout上跳了一跳。图像在鼠标悬停时平滑地向上滑动,但在鼠标悬停时,图像在向下滑动之前先向上跳几个像素 请点击此处:Jquery Chrome中的动画跳跃,jquery,google-chrome,jquery-animate,Jquery,Google Chrome,Jquery Animate,我用一个简单的jQuery动画在mouseout上跳了一跳。图像在鼠标悬停时平滑地向上滑动,但在鼠标悬停时,图像在向下滑动之前先向上跳几个像素 请点击此处: 我没有注意到Safari或Firefox中的问题(目前也没有IE)。我尝试明确设置高度/宽度,并将边距/填充归零,但这对跳转没有任何影响。我用边框和图像的新显示更新了您的示例,这样您就可以看到它返回到mouseout上的初始位置:我用边框和图像的新显示更新了您的示例,这样您就可以看到它返回到mouseout上的初始位置:我怀疑这是因为默认的
我没有注意到Safari或Firefox中的问题(目前也没有IE)。我尝试明确设置高度/宽度,并将边距/填充归零,但这对跳转没有任何影响。我用边框和图像的新显示更新了您的示例,这样您就可以看到它返回到mouseout上的初始位置:我用边框和图像的新显示更新了您的示例,这样您就可以看到它返回到mouseout上的初始位置:我怀疑这是因为默认的jQuery动画模式具有平滑的加速和减速(称为
swing
easing)-这会导致突然停止看起来像跳跃。您可以告诉animate仅使用线性
动画,这样可以防止跳转:
$('img').hover(function () {
$(this).animate( { 'top': '-10' },1000, 'linear');
}, function() {
$(this).stop().animate( { 'top': '0' },1000,'linear');
});
我怀疑这是因为默认的jQuery动画模式具有平滑的加速和减速(称为
swing
easing)-这会导致突然停止看起来像跳跃一样。您可以告诉animate仅使用线性
动画,这样可以防止跳转:
$('img').hover(function () {
$(this).animate( { 'top': '-10' },1000, 'linear');
}, function() {
$(this).stop().animate( { 'top': '0' },1000,'linear');
});
这很有道理。不幸的是,跳转仍然存在,但你很难给出建议,除非你能看到它。在我运行在Ubuntu上的Chrome-12.0.742.112(90304)版本中,这修复了它。你使用的是什么版本的Chrome?这很有道理。不幸的是,跳转仍然存在,但你很难给出建议,除非你能看到它。在我运行在Ubuntu上的Chrome-12.0.742.112(90304)版本中,这修复了它。你使用的是什么版本的Chrome?