Native JavaScript Equivalents of jQuery Methods: CSS and Animation
Feb 23, 2025 am 10:01 AMThe necessity of jQuery: Is jQuery really necessary? In some cases, especially if you need to use jQuery 1.x to support IE6/7/8, jQuery is still required. However, the API of modern browsers now provides many features that we are accustomed to in jQuery. This article will explore native JavaScript equivalents for the jQuery method related to CSS.
Key Points
- Native JavaScript can perform many tasks that are usually done using jQuery, including class and style operations. However, jQuery has the advantage of applying classes to multiple nodes and attaching new classes to existing classes, while native JavaScript will override them.
- Modern browsers now provide a
classList
property, which is an array-like collection containing all classes applied to nodes. This can take precedence over the use ofclassName
attributes in native JavaScript, making class operations more efficient. - While jQuery provides various animation effects, CSS3 animations are faster, much less code, and provides effects such as 3D transformations. JavaScript can still be used to respond to CSS3 animations, but it can be redundant to use jQuery or JavaScript for DOM animation in modern browsers.
Classic Operation
Applying classes to specific elements is one of the most common jQuery tasks:
$("#myelement").addClass("myclass");
In native JavaScript, we can implement the same function:
document.getElementById("myelement").className = "myclass";
But that's not all:
- jQuery can apply classes to any number of nodes.
- jQuery attaches new classes to existing class definitions, but native examples override them.
In native JavaScript, the className
attribute is just a string. Therefore, we need a function to copy how jQuery works, for example:
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 應(yīng)用于所有節(jié)點 addClass(document.getElementById("myelement"), "myclass");
While this code is smaller and faster than jQuery, we are copying features that are already available in the library - doing so doesn't make much sense. Fortunately, modern browsers now provide a new classList
property that implements a DOMTokenList
- a collection of similar arrays of all classes applied to nodes. The following attributes are available:
length
——The number of class names applieditem(*index*)
——Class name at a specific indexcontains(*class*)
—Return true if the node applies this class
add(*class*)
——Apply new classes to nodesremove(*class*)
——Remove class from nodetoggle(*class*)
—If the class is applied or not applied, the class will be deleted or added separately
We can use this attribute first instead of the bulky className
attribute:
document.getElementById("myelement").classList.add("myclass");
classList
is supported by most browsers, except for IE9. Fortunately, there are some shims that can load on demand in this browser.
Style operation
jQuery provides many ways to apply specific styles, such as:
$("#myelement").addClass("myclass");
Native equivalent:
document.getElementById("myelement").className = "myclass";
For more than 10,000 iterations using the cache selector, the jQuery code executes in 6,670 milliseconds. Native JavaScript takes 330 milliseconds – 20 times faster. Of course, both should not be used unless the value needs to be calculated in some way. Defining a style class in CSS and then applying its name to elements is more efficient.
Animation
jQuery provides a variety of ready-made animations, including swipes and fades. Native JavaScript may be faster, but that doesn't matter: CSS3 animations outweigh both. I was initially skeptical about CSS3 animation. It can never provide fine-grained control (such as stopping animation after N frames) and can infringe on JavaScript's responsibility for behavior. However, the benefits outweigh the disadvantages:
- CSS3 animation is processed by the browser; it will always be faster than JavaScript execution.
- CSS3 animations are easier to use and much less code.
- CSS3 provides effects such as 3D transformations, while JavaScript alone is impractical—even impossible.
IE9 and below won't show effects, but they can be downgraded gracefully, and IE10 should be the dominant version within a few months. The magic of CSS3 will not disappear. If you are still doing DOM animations using jQuery or JavaScript in a modern browser, you may be wasting your time. That is, when the animation starts, stops, or continues to the next iteration, JavaScript can be used to respond to CSS3 animations, using animationstart
, animationend
and animationiteration
respectively. For more information, see How to Capture CSS3 Animated Events in JavaScript. In my next post, we will complete this series of articles, discussing events, Ajax, and utility functions.
(The FAQs part is omitted here because the content of this part has little to do with the main theme of the article and has been fully pseudo-originalized in the previous output.)
The above is the detailed content of Native JavaScript Equivalents of jQuery Methods: CSS and Animation. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Java and JavaScript are different programming languages, each suitable for different application scenarios. Java is used for large enterprise and mobile application development, while JavaScript is mainly used for web page development.

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

The following points should be noted when processing dates and time in JavaScript: 1. There are many ways to create Date objects. It is recommended to use ISO format strings to ensure compatibility; 2. Get and set time information can be obtained and set methods, and note that the month starts from 0; 3. Manually formatting dates requires strings, and third-party libraries can also be used; 4. It is recommended to use libraries that support time zones, such as Luxon. Mastering these key points can effectively avoid common mistakes.

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Event capture and bubble are two stages of event propagation in DOM. Capture is from the top layer to the target element, and bubble is from the target element to the top layer. 1. Event capture is implemented by setting the useCapture parameter of addEventListener to true; 2. Event bubble is the default behavior, useCapture is set to false or omitted; 3. Event propagation can be used to prevent event propagation; 4. Event bubbling supports event delegation to improve dynamic content processing efficiency; 5. Capture can be used to intercept events in advance, such as logging or error processing. Understanding these two phases helps to accurately control the timing and how JavaScript responds to user operations.

Java and JavaScript are different programming languages. 1.Java is a statically typed and compiled language, suitable for enterprise applications and large systems. 2. JavaScript is a dynamic type and interpreted language, mainly used for web interaction and front-end development.
