jQueryの必要性:jQueryは本当に必要ですか? 場合によっては、特にIE6/7/8をサポートするためにjQuery 1.xを使用する必要がある場合は、JQueryがまだ必要です。ただし、最新のブラウザのAPIは、JQueryで慣れている多くの機能を提供しています。この記事では、CSSに関連するjQueryメソッドのネイティブJavaScript同等物を調べます。
キーポイント
classList
プロパティを提供するようになりました。これは、ネイティブJavaScriptでのclassName
属性の使用よりも優先され、クラス操作がより効率的になります。 古典的な操作
特定の要素にクラスを適用することは、最も一般的なjQueryタスクの1つです。
$("#myelement").addClass("myclass");
しかし、それだけではありません:
document.getElementById("myelement").className = "myclass";
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
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アニメーションは、ブラウザによって処理されます。、およびanimationstart
animationend
animationiteration
(この部分の内容は記事の主なテーマとはほとんど関係がなく、以前の出力で完全に擬似オリジナル化されているため、FAQの部分はここで省略されています。
以上がjQueryメソッドのネイティブJavaScript同等物:CSSとアニメーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。