search
HomeWeb Front-endJS TutorialLearn 5 ways to interact with JavaScript and CSS

Learn 5 ways to interact with JavaScript and CSS

As browsers continue to be upgraded and improved, the boundaries between CSS and JavaScript are becoming increasingly blurred. Originally they were responsible for completely different functions, but in the end, they all belong to web front-end technologies, and they need to work closely with each other. We all have .js files and .css files in our web pages, but this does not mean that CSS and js are independent and cannot interact. You may not be aware of these five ways JavaScript and CSS can work together!

Related learning recommendations: javascript video tutorial

Using JavaScript to obtain pseudo-element (pseudo-element) attributes

Everyone You know how to get the CSS style value of an element through its style attribute, but can you get the attribute value of a pseudo-element? Yes, you can also access pseudo-elements in the page using JavaScript.

// Get the color value of .element:before
var color = window.getComputedStyle(
	document.querySelector('.element'), ':before'
).getPropertyValue('color');

// Get the content value of .element:before
var content = window.getComputedStyle(
	document.querySelector('.element'), ':before'
).getPropertyValue('content');

See, I can access the content attribute value in the pseudo element. This is a very useful technique if you want to create a dynamic, stylish website!

classList API

Many JavaScript tool libraries have methods such as addClass, removeClass and toggleClass. In order to be compatible with old browsers, the method used by these class libraries is to first search the className of the element, append and delete the class, and then update the className. In fact, there is a new API that provides methods for adding, deleting and reversing CSS class attributes, called classList:

myp.classList.add('myCssClass'); // Adds a class

myp.classList.remove('myCssClass'); // Removes a class

myp.classList.toggle('myCssClass'); // Toggles a class

Most browsers have implemented the classListAPI for a long time. And it was finally implemented in IE10.

Add and delete style rules directly to the style sheet

We are all very familiar with using element.style.propertyName to modify the style. Using JavaScript can help us do this. , but do you know how to add or modify an existing CSS style rule? It's actually very simple.

function addCSSRule(sheet, selector, rules, index) {
	if(sheet.insertRule) {
		sheet.insertRule(selector + "{" + rules + "}", index);
	}
	else {
		sheet.addRule(selector, rules, index);
	}
}

// Use it!
addCSSRule(document.styleSheets[0], "header", "float: left");

This method is usually used to create a new style rule, but if you want to modify an existing rule, you can also do so.

Loading CSS files

Lazy loading of images, JSON, scripts, etc. is a good way to speed up page display. We can use JavaScript loaders such as curl.js to lazily load these external resources. But did you know that CSS style sheets can also be lazily loaded, and the callback function will notify you after the loading is successful.

curl(
	[
		"namespace/MyWidget",
		"css!namespace/resources/MyWidget.css"
	], 
	function(MyWidget) {
		// 你可以对MyWidget进行操作
		// 这里没有对这个CSS文件引用,因为不需要;
		// 我们只需要它已经加载到页面上了
	}
});

The PrismJS syntax highlighting script used on this website is lazy loaded. When all resources are loaded, the callback function will fire and I can load it in the callback function. very useful!

CSS Mouse Pointer Events

CSS Mouse Pointer Eventspointer-eventsThe property is very interesting. It works very much like JavaScript. When you set this property to none, it can effectively prevent and disable this element. You may say "So what?", but in fact, it disables any JavaScript events or callback functions on this element!

.disabled { pointer-events: none; }

Click on this element and you will find that any listeners you place on this element will not trigger any events. A fantastic feature, really - you no longer need to check whether a certain CSS class exists in order to prevent an event from being triggered.

These are 5 ways to interact with CSS and JavaScript that you may not have discovered yet. Do you have any new discoveries? Share it!

The above is the detailed content of Learn 5 ways to interact with JavaScript and CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:webhek. If there is any infringement, please contact admin@php.cn delete
es6数组怎么去掉重复并且重新排序es6数组怎么去掉重复并且重新排序May 05, 2022 pm 07:08 PM

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

JavaScript的Symbol类型、隐藏属性及全局注册表详解JavaScript的Symbol类型、隐藏属性及全局注册表详解Jun 02, 2022 am 11:50 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

JavaScript对象的构造函数和new操作符(实例详解)JavaScript对象的构造函数和new操作符(实例详解)May 10, 2022 pm 06:16 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

JavaScript面向对象详细解析之属性描述符JavaScript面向对象详细解析之属性描述符May 27, 2022 pm 05:29 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

javascript怎么移除元素点击事件javascript怎么移除元素点击事件Apr 11, 2022 pm 04:51 PM

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

整理总结JavaScript常见的BOM操作整理总结JavaScript常见的BOM操作Jun 01, 2022 am 11:43 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach是es6里的吗foreach是es6里的吗May 05, 2022 pm 05:59 PM

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

See all articles

Hot AI Tools

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.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.