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」のようなものになり、更新関数が失敗するためだと思います。animate オブジェクトに何かを間違って渡しているのでしょうか、それとも JQuery の問題ですか?

4

1 に答える 1

0

これは、「アニメーション」が「-320px」などの数値以外の値に対して機能しないためです。代わりに「-320」を渡すと問題なく動作します。

于 2012-07-31T21:03:40.430 に答える