2012-05-16 78 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'則相當不錯。