1

私は単一ページ Web アプリケーションに jQuery を使用しており、単一の DIV の高さを固定値から別の固定値 (~50px から 75px) にアニメーション化する必要があります。

驚くべきことに、アニメーション自体ではなく、animate() メソッドの実際の呼び出しに関して、ひどいパフォーマンスの問題が発生することを私は知っています。

window.time = {};
time.start = new Date().getTime();

$('div').animate({height: '25px'}, 500);

time.end = new Date().getTime();

このスニペットを実行すると、ページ上のすべての DIV のアニメーションが滑らかになりますが、

time.end - time.start = 190

したがって、アニメーションの初期化には約 190ms が必要です。

もちろん、この応答時間は許容できません。

このような問題を経験したことがあり、アイデア/解決策を持っている人はいますか?

前もって感謝します!

レオ

4

2 に答える 2

0

そのような呼び出しのパフォーマンスが特に悪くなったことはありませんが、明らかにアニメートしている div の数に応じてスケーリングされます。おそらくそれが問題です。

アニメーションに依存しない他のことをやりたいだけの場合は、 を使用して個別に実行し、実行していることをsetTimeout(function() { ... }, 0)すべて完了してください。現在の関数から戻ったときに実行されます。

于 2012-09-04T10:17:11.693 に答える
0

すべての div に対して、いくつかの作業が行われます (開始値と終了値の設定、間隔の設定、ステップ増分の計算など)。そのため、期間はdivの数に依存し、それに線形に比例します.jqueryを使用してそれを改善する合法的な方法はありません.

于 2012-09-04T10:17:57.900 に答える