2012-05-16 79 views
0

这可能是一个简单的解决方案,但我无法在任何地方找到任何东西。Pre-IE9中的JQuery动画

在我的代码我做:

$('#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浏览器,火狐和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的问题吗?

回答

0

原因是因为“animate”不适用于非数字值,如'-320px'。而传递'-320'则相当不错。