キーポイント
- JavaScriptは、イベントハンドラーを要素に追加してCSS3アニメーションを管理し、アニメーションを順番に再生するなど、アニメーションを細かく制御できるようにすることができます。キャプチャできるイベントには、「AnimationStart」、「AnimationItration」、および「AnimationEnd」の3つのタイプがあります。 これらのアニメーションイベントのクロスブラウザー互換性は、カスタム関数を使用してすべてのプレフィックスされた名前と未定の名前を呼び出すことで実現できます。これにより、イベントハンドラーをコード行を使用して割り当てることができます。
-
addEventListener
アニメーションリスナー関数に渡されたイベントオブジェクトは、アニメーション名とアニメーションの開始以来の経過時間を提供します。これを使用して、特定のアニメーションが終了したときに他のコードを実行し、特定の順序で別のCSS3アニメーションを適用するなど、他のコードを実行できます。 - CSS3アニメーションはスムーズで簡単に実装できますが、JavaScriptとは異なり、フレームごとの制御はありません。幸いなことに、イベントハンドラーを任意の要素に適用して、アニメーション状態を決定できます。これにより、さまざまなアニメーションを順番に再生するなど、細かい制御が可能になります。
このシンプルなCSS3アニメーションを考えてみましょう:
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }クラスがID
の要素に適用されると、enable
という名前のアニメーションが3回実行されます。各反復は1秒間続き、その間に要素がフェードアウトしてからフェードインします。 anim
アニメーションが発生すると、flash
3種類のイベントがトリガーされます。
アニメーションが最初に開始されたとき、animationstart
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
animationstart
animationiteration
anim.addEventListener("animationiteration", AnimationListener, false);
animationiteration
animationend
anim.addEventListener("animationend", AnimationListener, false);
animationend
ブラウザー互換性執筆時点で、Firefox、Chrome、Safari、Opera、およびIE10は、CSS3アニメーションと関連するイベントハンドラーをサポートしています。さらに、Opera、IE10、およびWebKitブラウザはプレフィックスを使用しており、完全に防止するためにいくつかのケース変更を加えました...
W3C Standard Firefox webKitオペラIE10
animationstart
animationstart
webkitAnimationStart
oanimationstart
MSAnimationStart
animationiteration
animationiteration
webkitAnimationIteration
oanimationiteration
MSAnimationIteration
animationend
animationend
webkitAnimationEnd
oanimationend
MSAnimationEnd
addEventListener
プレフィックスの問題を解決する最も簡単な方法は、カスタム関数を使用してすべての接頭辞と未解像度の名前を呼び出すことです。
var pfx = ["webkit", "moz", "MS", "o", ""]; function PrefixedEvent(element, type, callback) { for (var p = 0; p < pfx.length; p++) { if (!pfx[p]) type = type.toLowerCase(); element.addEventListener(pfx[p] + type, callback, false); } }クロスブラウザーイベントハンドラーは、コードの行を使用して割り当てることができます:
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }
イベントオブジェクト
上記のコードでは、アニメーションイベントが発生するたびに関数が呼び出されます。イベントオブジェクトは、単一のパラメーターとして渡されます。標準のプロパティとメソッドに加えて、次のことも提供します。
AnimationListener
- :css3アニメーション名(つまり
- )
animationName
flash
:アニメーションの開始以来の時間(秒単位)。 -
elapsedTime
したがって、
flash
たとえば、
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
javascriptのCSS3アニメーションイベントデモンストレーションを表示
デモページにボタンが表示されます。クリックすると、「enable」クラスが切り替えられ、アニメーションが開始されます。アニメーションイベントがトリガーされると、ステータスがコンソールに表示されます。アニメーションが終了すると、ボタンを再度クリックできるように「有効」クラスが削除されます。
興味深いプロジェクトでアニメーションイベントキャプチャを使用する場合は、お知らせください。 flash
(この記事を読むのが好きなら、学習できるのが気に入るはずです。これはマスターから新しいスキルとスキルを学ぶ場所です。現実の世界のCSS3)
(この記事のコメントは閉じられています。CSSについて質問はありますか?フォーラムで尋ねてみませんか?)
CSS3アニメーションとJavaScriptイベントハンドラーについてのFAQ(FAQ) CSS3アニメーションとJavaScriptイベントハンドラーとは何ですか?
CSS3アニメーションは、JavaScriptやFlashを使用せずにHTML要素をアニメーション化できるCSS3(Cascading StyleSheets)の機能です。追加のリソースなしで、CSSコードでシンプルなアニメーションを直接作成する方法を提供します。一方、JavaScriptイベントハンドラーは、特定のイベントが発生したときにトリガーするJavaScriptの関数です。これらのイベントは、ユーザーがボタンをクリックしたり、ページの読み込みをしたり、アニメーションを終了したりするなど、あらゆるイベントにすることができます。 CSS3アニメーションとJavaScriptイベントハンドラーを使用して、動的なインタラクティブなWebコンテンツを作成します。
CSS3アニメーションでJavaScriptイベントハンドラーを使用する方法は?
CSS3アニメーションを備えたJavaScriptイベントハンドラーを使用するには、アニメーション化するHTML要素にイベントリスナーを追加する必要があります。このイベントリスナーは、アニメーションの最後にJavaScript関数をトリガーします。基本的な例は次のとおりです
このコードでは、「AnimationEnd」は私たちが聴いているイベントであり、CSS3アニメーションが完了したときに発火します。CSS3トランジションを備えたJavaScriptイベントハンドラーを使用できますか?
はい、CSS3アニメーションと同じように、CSS3トランジションを備えたJavaScriptイベントハンドラーを使用できます。聞く必要があるイベントは「TransitionEnd」です。このイベントは、CSSの移行が完了した後に解雇されます。
anim.addEventListener("animationiteration", AnimationListener, false);
JavaScriptを使用してCSS3アニメーションの時間を制御する方法は?
JavaScriptを使用して、「アニメーション」プロパティを使用してCSS3アニメーションの時間を制御できます。このプロパティは、アニメーションの開始時の遅延を設定します。このプロパティを次のようにJavaScriptに設定できます: このコードでは、ページが2秒間ロードされた後にアニメーションが開始されます。
#anim.enable { -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3; } /* 动画 */ @-webkit-keyframes flash { 50% { opacity: 0; } } @-moz-keyframes flash { 50% { opacity: 0; } } @-ms-keyframes flash { 50% { opacity: 0; } } @-o-keyframes flash { 50% { opacity: 0; } } @keyframes flash { 50% { opacity: 0; } }
JavaScriptを使用してCSS3アニメーションを繰り返す方法は?
「アニメーションアイテーションカウント」プロパティを使用して、JavaScriptを使用してCSS3アニメーションを繰り返すことができます。このプロパティは、アニメーションを再生する回数を指定します。このプロパティを次のようにJavaScriptに設定できます: このコードでは、アニメーションが無期限に繰り返されます。
JavaScriptを使用してCSS3アニメーションの速度を変更できますか?
var anim = document.getElementById("anim"); anim.addEventListener("animationstart", AnimationListener, false);
はい、JavaScriptを使用してCSS3アニメーションの速度を変更できます。 「アニメーション期間」プロパティは、アニメーションがサイクルを完了するのにかかる時間の長さを制御します。このプロパティを次のようにJavaScriptに設定できます: このコードでは、アニメーションは2秒間続きます。
JavaScriptを使用してCSS3アニメーションを一時停止して復元する方法は?
「アニメーションプレイステート」プロパティを使用してJavaScriptを使用してCSS3アニメーションを一時停止して復元できます。このプロパティは、アニメーションが実行されているか一時停止しているかを設定します。このプロパティを次のようにJavaScriptに設定できます: JavaScriptを使用してCSS3アニメーションの方向を変更できますか?
はい、JavaScriptを使用してCSS3アニメーションの方向を変更できます。 「アニメーション方向」プロパティは、交互のサイクル中にアニメーションを逆に再生する必要があるかどうかを定義します。このプロパティを次のようにJavaScriptに設定できます: このコードでは、アニメーションが後方に再生されます。
anim.addEventListener("animationend", AnimationListener, false);JavaScriptを使用してCSS3アニメーションの終わりを検出する方法は?
JavaScriptを使用して、「AnimationEnd」イベントにイベントリスナーを追加することで、CSS3アニメーションの終了を検出できます。このイベントは、CSS3アニメーションが完了した後に解雇されます。それを行う方法は次のとおりです
JavaScriptを使用してCSS3アニメーションのアニメーション - タイミング機能を変更できますか?
はい、JavaScriptを使用してCSS3アニメーションの「アニメーション - タイミング機能」を変更できます。このプロパティは、アニメーションの速度曲線を指定します。このプロパティを次のようにJavaScriptに設定できます:
var pfx = ["webkit", "moz", "MS", "o", ""]; function PrefixedEvent(element, type, callback) { for (var p = 0; p < pfx.length; p++) { if (!pfx[p]) type = type.toLowerCase(); element.addEventListener(pfx[p] + type, callback, false); } }
このコードでは、アニメーションがゆっくりで開始され、加速します。
以上がJavaScriptでCSS3アニメーションイベントをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
