jQueryメソッドのネイティブJavaScript同等物:CSSとアニメーション
jQueryの必要性:jQueryは本当に必要ですか? 場合によっては、特にIE6/7/8をサポートするためにjQuery 1.xを使用する必要がある場合は、JQueryがまだ必要です。ただし、最新のブラウザのAPIは、JQueryで慣れている多くの機能を提供しています。この記事では、CSSに関連するjQueryメソッドのネイティブJavaScript同等物を調べます。
キーポイント
- ネイティブJavaScriptは、クラスやスタイルの操作を含むjQueryを使用して通常行われる多くのタスクを実行できます。ただし、jQueryには複数のノードにクラスを適用し、既存のクラスに新しいクラスを添付するという利点がありますが、ネイティブJavaScriptはそれらをオーバーライドします。
- 最新のブラウザは、ノードに適用されたすべてのクラスを含む配列のようなコレクションである
classList
プロパティを提供するようになりました。これは、ネイティブJavaScriptでのclassName
属性の使用よりも優先され、クラス操作がより効率的になります。 - jQueryはさまざまなアニメーション効果を提供しますが、CSS3アニメーションはより速く、コードがはるかに少なく、3D変換などの効果を提供します。 JavaScriptは引き続きCSS3アニメーションに応答するために使用できますが、最新のブラウザのDOMアニメーションにjQueryまたはJavaScriptを使用することは冗長です。
古典的な操作
特定の要素にクラスを適用することは、最も一般的なjQueryタスクの1つです。
$("#myelement").addClass("myclass");
しかし、それだけではありません:
document.getElementById("myelement").className = "myclass";
jQueryは、任意の数のノードにクラスを適用できます。
- jQueryは既存のクラス定義に新しいクラスを添付しますが、ネイティブの例はそれらを無効にします。
- ネイティブJavaScriptでは、 属性は単なる文字列です。したがって、jQueryの仕組みなどをコピーする機能が必要です。
このコードはjQueryよりも小さくて高速ですが、ライブラリですでに利用可能な機能をコピーしています。そうすることはあまり意味がありません。幸いなことに、最新のブラウザは、ノードに適用されるすべてのクラスの同様の配列のコレクションを実装する新しいclassName
プロパティを提供するようになりました。次の属性が利用可能です:
function addClass(node, class) { if (!node.length) node = [node]; for (var n = 0, m = node.length; n < m; n++) { if (!node[n].classList.contains(class)) { node[n].className += " " + class; } } } // 将 myclass 应用于所有节点 addClass(document.getElementById("myelement"), "myclass");
classList
- 適用されたクラス名の数DOMTokenList
- - 特定のインデックスでのクラス名
-
length
- ノードがこのクラスを適用している場合、true - を返します
item(*index*)
- 新しいクラスをノードに適用します -
contains(*class*)
- ノード - からクラスを削除します
add(*class*)
- クラスが適用されているか、適用されていない場合、クラスは個別に削除または追加されます -
remove(*class*)
この属性は、かさばる - 属性の代わりに最初に使用できます:
toggle(*class*)
は、IE9を除き、ほとんどのブラウザでサポートされています。幸いなことに、このブラウザにオンデマンドでロードできるシムがいくつかあります。 className
スタイル操作
jQueryは、次のような特定のスタイルを適用する多くの方法を提供します。
$("#myelement").addClass("myclass");
document.getElementById("myelement").className = "myclass";
アニメーション
jQueryは、スワイプやフェードなど、さまざまな既製のアニメーションを提供します。ネイティブのJavaScriptはより速いかもしれませんが、それは問題ではありません:CSS3アニメーションは両方を上回っています。私は当初、CSS3アニメーションについて懐疑的でした。微調整されたコントロール(nフレーム後のアニメーションの停止など)を提供することはできず、行動に対するJavaScriptの責任を侵害することができます。ただし、利点は欠点を上回っています:
CSS3アニメーションは、ブラウザによって処理されます。- CSS3アニメーションは使いやすく、コードがはるかに少ない。
- CSS3は3D変換などの効果を提供しますが、JavaScriptだけは非現実的ですが、不可能です。
- IE9以下は効果を示しませんが、それらは優雅に格下げすることができ、IE10は数か月以内に支配的なバージョンになるはずです。 CSS3の魔法は消えません。最新のブラウザでJQueryまたはJavaScriptを使用してDOMアニメーションを行っている場合は、時間を無駄にしている可能性があります。つまり、アニメーションが開始、停止、または次のイテレーションに続くと、JavaScriptを使用してCSS3アニメーションにそれぞれ応答して、それぞれ
、およびanimationstart
animationend
animationiteration
(この部分の内容は記事の主なテーマとはほとんど関係がなく、以前の出力で完全に擬似オリジナル化されているため、FAQの部分はここで省略されています。
以上がjQueryメソッドのネイティブJavaScript同等物:CSSとアニメーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









