2017-08-29 10 views
3

ているとき、私はanimate.cssライブラリを使用してCSSトランジション/アニメーションに大きく依存しているウェブサイトを持って停止する必要がありますCPUのボトルネックを避けてください。だから私は不思議に思っています:アニメーションがビューポートの外にあることを検出したときにCSSアニメーションを手作業で(JSを使用して)停止するか、ブラウザが自動的にそれらのアニメーションの処理を停止しますか?私はCSSアニメーションは、彼らが外にビューポート

ほとんどの私のアニメーションは、いくつかの時間間隔の間に要素にfadeInUpのようなクラスを追加/削除されます。ですから、私の質問は、これは、要素がビューポートの外にあるときにそれらのクラス(アニメーションを引き起こす)を追加すると、ブラウザに重大なオーバーヘッドが生じますか?ブラウザは、それらのアニメーションが表示されていないときに自動的に「一時停止」しますか?

答えて

0

私が見たことから、アニメーションは表示されていなくても実行し続けていると思います。したがって、表示されていない状態で一時停止したい場合は、一時停止したいと考えることができるのは、遅いコンピュータやオペレーティングシステムの場合だけですが、ほとんどの場合、これらのアニメーションはあまり集中的ではありません。あなたがそうするならば、ブラウザを実行するのはJSです。

+0

私はそれが完全に真実だとは思わない。数週間前、アニメーションが見えなくなったところまでスクロールして何が起こるのかを確認するために、非常に重い/集中的なCSSアニメーションを作成しました(私のWINDOWSのCTRL + SHIFT + DELで) (70%から55%)。もし私が再びスクロールすると、それは再び約70%になるでしょう。しかしこれはFirefoxでしか起こらなかったが、クロムと私は小さなドロップを見たがそれはあまりにも決定的ではない。 – Samul

+0

JSアニメーションでは、アニメーションを下にスクロールすると、CPU使用率に差異はありません。私は、ビューアで使用されているかどうかにかかわらず、ほとんどのブラウザがすべてのJSコードを実行し続けていると思います。しかし、CSSでこの動作は大きく異なるようです。しかし、私はそれについていくつかの文書を見つけるのに苦労しています... – Samul