jQueryアニメーションを簡単に改善します
コアポイント
- jQueryの
animate()
関数は実用的ですが、高性能アニメーションエンジンではありません。これは、メモリ消費とフレームレートの低い問題につながる可能性があります。ただし、CSSアニメーションやクロスブラウザーの互換性を求めている開発者にとっては、実行可能なオプションのままです。 - CSSアニメーションは通常、jqueryのアニメーションよりも高速で効率的です。これは、主にGPU加速のおかげです。ただし、インターネットエクスプローラーの古いバージョンとの互換性の問題や、アニメーション期間を決定する時間ではなく依存関係の割合など、いくつかの制限があります。
- velocity.jsは、コードを大幅に変更することなく、jQueryアニメーションのパフォーマンスを大幅に向上させるjQueryプラグインです。
$.animate()
を$.velocity()
に置き換えることにより、開発者はより高いフレームレートを取得し、jQueryのチェーンコール特性を維持できます。
jQueryのanimate()
関数を使用して、Webページに優れた効果を生み出しました。その後、CSS3の導入と台頭により、コードはひどいと言われました。彼らは、すべてのjQueryベースのアニメーション(および通常はJavaScriptベースのアニメーション)を放棄し、代わりにCSSベースのアニメーションを使用することを提案します。この変更により、多くのブラウザ(in)互換性の問題と機能の欠如は言うまでもありません。 CSSアニメーションはJavaScriptアニメーションよりも高速であるため、この痛みは妥当です。少なくともそれは彼らが私たちに言ったことです。これは本当ですか? jqueryのanimate()
機能は本当に遅いですか?コードを変更せずに簡単に強化する方法はありますか?答えはイエスです。この記事では、アニメーションを作成する2つの方法の制限のいくつかを理解し、jQueryコードでより良いパフォーマンスを得る方法を理解します。
jQueryの問題は何ですか?
私たちは皆、jQueryを知っていて愛しています(実際にはそれが好きではありません)。 HTMLクライアントスクリプトを簡素化するように設計されたこのライブラリは、世界中の数十万人の開発者を支援してきました(実際のデータではありません)。 HTMLドキュメントの通過と操作、イベントの取り扱い、Ajaxなどを簡単にし、すべてのブラウザーの非互換性とエラーを処理する負担を緩和します。その機能の中でも、jQueryはアニメーションとエフェクトの作成も許可しています。それを使用して、CSSプロパティをアニメーション化し、要素を非表示にし、要素をフェードアウトし、その他の同様のエフェクトができます。ただし、JQueryの設計目標は、パフォーマンスの高いアニメーションエンジンになることはなく、真に複雑でCPU/GPUを提供するアニメーションをサポートすることを意図したことはありません。この事実の証拠として、jQueryの記憶消費はしばしばゴミ収集を引き起こし、アニメーションを実行するときに問題を引き起こします。さらに、jQueryはsetInterval()
(requestAnimationFrame()
の詳細を読む)の代わりにrequestAnimationFrame()
を使用して、アニメーションを実行するために使用します。これらの要因のため、「誰が最もよく知っている」は、AnimationとEffectsを作成するためにCSSの使用を提唱しています。
cssアニメーションとトランジション
明確にしましょう:CSSアニメーションはjQueryアニメーションよりも優れています。アニメーションに関しては、jQueryはCSSの数倍遅い場合があります。 CSSアニメーションとトランジションには、GPUハードウェアによって加速されるという利点があります。これは、移動するピクセルに関しては優れています。この要因は、特にモバイルデバイスなどのパフォーマンスが重要な状況では、大きな改善のようです。これは素晴らしいですね。真実は、このすべてに制限と問題があるということです。最初の制限は、すべてのCSSプロパティをGPUを通じて改善できるわけではないことです。したがって、CSSアニメーションを使用すると常に勝つと考えるのは間違っています。もう1つの問題は、CSSアニメーションがポータブルではなく、少なくともターゲットにする可能性のあるすべてのブラウザーではないことです。たとえば、移行はインターネットエクスプローラー9以下では機能しません。さらに悪いことに、CSSのアニメーションは現在、時間(秒またはミリ秒)ではなくパーセンテージに基づいています。これは、アニメーションの終了後にアニメーションの持続時間を変更すると、SASS以下のようなプリプロセッサを使用しない限り、アニメーションが非常に痛みを伴う可能性があることを意味します。最後に、CSSアニメーションでは、多数のベンダープレフィックスを入力する必要があります。はい、それらを処理するためのツールを委任できますが、それは心配するもう1つのことです。
以前の考慮事項に加えて、jQueryアニメーションを無視すべきではない他の正当な理由があります。それらは、テクノロジー自体の弱点よりもスキルの不足に関連していますが、それでも言及する価値があります。開発者がjQueryを使用してアニメーションを作成することに慣れている場合、開発者が同じタスクを実行するためにCSSを使用できない可能性が高くなります。開発者がCSSで同じ効果を生み出すのに長い時間がかかるかもしれないので、その努力は利益の価値がありません。または、開発者は、高度にカスタマイズ可能なアニメーションを作成するための別のテクニックを学びたくない場合があります。恥ずべきことは何もありません。誰もが特定の分野に独自の制限を持っています。ここでのポイントは、jQueryで作成されたアニメーションがパフォーマンスを向上させることを望んでいるため、CSSアニメーションに変換する必要はないということです。幸いなことに、解決策があります。
jquery のanimate()
関数を改善します
jQueryアニメーションの問題を解決するための答えは、velocity.jsと呼ばれます。 Velocity.jsは、IEの古いバージョンを使用するjQuery 1.xとは異なり、velocityはIE8と互換性があります。これは、ほとんどのプロジェクトにとって大きな問題ではありません。この時点で、velocity.jsを使用するとコードベースにどのように影響するか疑問に思うかもしれません。答えは「非常にばかげた方法で」です。 Velocity.jsを統合するには、それをダウンロードして使用するWebページに含めるだけです。最後のステップは、パラメーターを変更せずに
に表示される<q cite="https://github.com/julianshapiro/velocity">一个 jQuery 插件,它重新实现了 $.animate() 以产生更高的性能(使 Velocity 也比 CSS 动画库更快),同时包含了改进动画工作流程的新功能。</q>
を置き換えることです。この変更は、私たちが選択したテキストエディターまたはIDEで検索と交換を実行するのと同じくらい簡単です。完了すると、アニメーションのパフォーマンスはすぐに改善されます。コードベースにあまり影響を与えずに知識を再利用できるため、これは素晴らしいことです。さらに、チェーンコールを維持するJQueryプラグインであるため、jQueryの典型的な「メソッドコールチェーン」を作成し続けることができます。 $.animate()
$.velocity()
結論
jQueryアニメーションの改善に関するFAQ
jQueryアニメーションを遅くする方法は?
アニメーションの期間を増やすことで、jQueryアニメーションを遅くすることができます。期間は、.animate()
メソッドのミリ秒で指定されています。たとえば、アニメーションを遅くして5秒間続く場合は、$(selector).animate({params}, 5000);
を記述する必要があります。数が大きいほど、アニメーションが遅くなります。
jQueryアニメーションにおける緩和の役割は何ですか?
jQueryアニメーションの緩和とは、その期間中のさまざまなポイントでのアニメーションの進行の速度を指します。 jQueryは、「スイング」と「線形」の2つの組み込み式緩和方法を提供します。 「スイング」はデフォルトの緩和方法であり、最初と端でアニメーションの進行が遅くなり、中央で速くなります。一方、「線形」は、プロセス全体でアニメーションが一定であることを保証します。
jQueryアニメーションのパフォーマンスを改善する方法は?
jQueryアニメーションのパフォーマンスを改善する方法はたくさんあります。 1つの方法は、一般にjQueryアニメーションよりも優れたパフォーマンスを発揮するため、可能な限りCSSトランジションを使用することです。別の方法は、同時に実行されるアニメーションの数を制限することです。また、ブラウザがよりスムーズなアニメーションのアニメーションを最適化できるようにするrequestAnimationFrame
メソッドを使用することもできます。
jqueryアニメーションの実行を停止する方法は?
.stop()
メソッドを使用して、実行中のjqueryアニメーションを停止できます。このメソッドは、選択した要素で現在実行されているアニメーションを停止します。たとえば、$(selector).stop();
は、選択した要素のアニメーションを停止します。
jQueryで複数のアニメーションをリンクする方法は?
同じ要素で複数のアニメーションメソッドを呼び出すだけで、複数のjQueryアニメーションをリンクできます。たとえば、$(selector).fadeIn().slideUp();
は最初に選択した要素にフェードしてから、上向きにスライドします。 jQueryは、アニメーションがコールの順に実行されることを保証します。
jQueryで複数の属性を同時にアニメーション化する方法は?
.animate()
メソッドにアニメーション化するプロパティを含むオブジェクトを渡すことにより、jQueryで複数のプロパティを一度にアニメーション化できます。たとえば、$(selector).animate({height: "300px", width: "200px"});
は、選択した要素の高さと幅を同時にアニメーション化します。
jQueryアニメーションでコールバック関数を使用する方法は?
jQueryアニメーションのコールバック関数は、アニメーションが完了した後に実行される関数です。コールバック関数を2番目のパラメーターとして.animate()
メソッドに渡すことができます。たとえば、$(selector).animate({params}, function(){ /* 动画完成后要执行的代码 */ });
。
jQueryでカスタムアニメーションを作成する方法は?
jQueryのキューとdequeueメソッドは、アニメーションの実行を制御するために使用されます。キューメソッドを使用すると、選択した要素で実行されるアニメーションキューに新しいアニメーションを追加できます。 Dequeueメソッドを使用すると、キューの次の関数を削除および実行できます。 メソッドは、キュー内の後続のプロジェクトの実行を遅らせるために使用されます。通常、遅延アニメーションに使用されます。たとえば、$(selector).animate({left: " =50px"});
jQueryアニメーションでキューとデキューのメソッドを使用する方法は?
jQueryアニメーションで
jQueryの.delay()
メソッドを使用する方法は? .delay()
はFadeinアニメーションを500ミリ秒遅らせます。 $(selector).delay(500).fadeIn();
以上がjQueryアニメーションを簡単に改善しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。
