0

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

在我的代码中,我正在做:

$('#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”这样导致更新函数失败。我是否将某些内容错误地传递给动画对象,或者这是 JQuery 的问题?

4

1 回答 1

0

这是因为“动画”不适用于非数字值,例如“-320px”。传入“-320”就可以了。

于 2012-07-31T21:03:40.430 回答