国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Web Front-end JS Tutorial Native JavaScript Equivalents of jQuery Methods: CSS and Animation

Native JavaScript Equivalents of jQuery Methods: CSS and Animation

Feb 23, 2025 am 10:01 AM

Native JavaScript Equivalents of jQuery Methods: CSS and Animation

The 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 of className 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:

  1. jQuery can apply classes to any number of nodes.
  2. 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 應用于所有節(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 applied
  • item(*index*)——Class name at a specific index
  • contains(*class*)—Return true
  • if the node applies this class
  • add(*class*)——Apply new classes to nodes
  • remove(*class*)——Remove class from node
  • toggle(*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:

  1. CSS3 animation is processed by the browser; it will always be faster than JavaScript execution.
  2. CSS3 animations are easier to use and much less code.
  3. 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Java vs. JavaScript: Clearing Up the Confusion Java vs. JavaScript: Clearing Up the Confusion Jun 20, 2025 am 12:27 AM

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.

Javascript Comments: short explanation Javascript Comments: short explanation Jun 19, 2025 am 12:40 AM

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

How to work with dates and times in js? How to work with dates and times in js? Jul 01, 2025 am 01:27 AM

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.

Why should you place  tags at the bottom of the ? Why should you place tags at the bottom of the ? Jul 02, 2025 am 01:22 AM

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

JavaScript vs. Java: A Comprehensive Comparison for Developers JavaScript vs. Java: A Comprehensive Comparison for Developers Jun 20, 2025 am 12:21 AM

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

JavaScript: Exploring Data Types for Efficient Coding JavaScript: Exploring Data Types for Efficient Coding Jun 20, 2025 am 12:46 AM

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

What is event bubbling and capturing in the DOM? What is event bubbling and capturing in the DOM? Jul 02, 2025 am 01:19 AM

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.

What's the Difference Between Java and JavaScript? What's the Difference Between Java and JavaScript? Jun 17, 2025 am 09:17 AM

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.

See all articles