Pre-IE9中的JQuery动画

时间:2012-05-16 13:27:06

标签: jquery internet-explorer internet-explorer-8

这可能是一个简单的解决方案,但我无法在任何地方找到任何东西。

在我的代码中我正在做:

$('#animateObject').animate({
    'position': 'absolute',
    'height': thisWidgetSettings.detailHeight,
    width: thisWidgetSettings.detailWidth,
    marginTop: '-120px',
    marginLeft: '-320px',
    top: $(window).height() / 2 - (parseInt(thisWidgetSettings.detailHeight, 10) / 2) + 120 + $(window).scrollTop(),
    left: $(window).width() / 2 - (parseInt(thisWidgetSettings.detailWidth, 10) / 2) + 320 + $(window).scrollLeft()
}, 500);

在IE9,Safari,Firefox和Chrome中,这一切都很有效,完全符合我的要求。但是,在IE7和IE8中,下面的行导致错误。

// JQuery 1.7.2 Line 8938
    this.now = this.start + ( (this.end - this.start) * this.pos );
}
this.update();

我相信这个错误的原因是此时this.now被设置,如果传入的值不是数字,this.now最终会变成类似“absoluteNaN”的东西,导致更新函数失败。我是否错误地将某些内容传递给animate对象,或者这是JQuery的问题?

1 个答案:

答案 0 :(得分:0)

原因是因为“animate”不适用于非数字值,例如'-320px'。通过'-320'而不是很好。