Home >Web Front-end >JS Tutorial >5 ways to interact with JavaScript and CSS that you may not know_javascript skills

5 ways to interact with JavaScript and CSS that you may not know_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:53:481065browse

As browsers continue to upgrade and improve, 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!

Use JavaScript to get the pseudo-element (pseudo-element) attribute

Everyone knows how to get the CSS style value of an element through its style attribute, but you can get the pseudo-element (pseudo-element) Is the property worth it? Yes, you can also access pseudo-elements in the page using JavaScript.

Copy code The code is as follows:

// 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 property 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 methods used by these class libraries are 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 to add, delete and reverse CSS class attributes, called classList:
Copy code Code As follows:

myDiv.classList.add('myCssClass'); // Adds a class
myDiv.classList.remove ('myCssClass'); // Removes a class
myDiv.classList.toggle('myCssClass'); // Toggles a class


Most browsers classListAPI has been implemented 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 styles. Using JavaScript can help us do this, but you know how to do it new Add or modify an existing CSS style rule? It's actually very simple.
Copy code The code is as follows:

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 this.

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.
Copy code The code is as follows:

curl(
[
"namespace/MyWidget",
"css!namespace/resources/MyWidget.css"
],
function(MyWidget) {
// You can operate on MyWidget
// There is no reference to this CSS file here because it is not needed;
// We just need it to have been loaded on the page
}
});< /span>

When all resources are loaded, the callback function will be triggered, and I can load it in the callback function. Very useful!

CSS Mouse Pointer Events

CSS Mouse Pointer Events The pointer-events property is very interesting. Its function is very similar to JavaScript. When you set this property to none, it can effectively prevent Disabling this element, you might say "so what?", but in fact, it disables any JavaScript events or callback functions on this element!
Copy code The code is as follows:

.disabled { pointer-events: none; }

Click this element, you 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!
Statement:
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