Home >Web Front-end >CSS Tutorial >Detailed explanation of the use of pointer-events in css3

Detailed explanation of the use of pointer-events in css3

php中世界最好的语言
php中世界最好的语言Original
2018-03-21 11:06:014122browse

This time I will bring you a detailed explanation of the use of css3 pointer-events. What are the precautions when using css3 pointer-events? Here are practical cases, let’s take a look.

What are pointer-events?

As the name suggests, pointer-events is an attribute used for HTML pointer events.

pointer-events can disable hover/focus/active and other dynamic effects of HTML elements.

The default value is auto, syntax:

pointer-events: auto | none | visiblepainted | visiblefill | visiblestroke | visible | painted | fill | stroke | all;

us Commonly used auto | none attributes. It should be noted that other attributes are only applicable to SVG elements.

auto: Pointer events can be used.

none: Disable pointer events. It should be noted that when the element with pointer disabled has child/parent elements, the event will be triggered on its child/parent elements during the time bubbling/capture phase.

Common scenarios

1. Disable a label event effect

When doing tab switching, when the current item is selected, the event of the current label is disabled , only when switching other tabs, new data will be requested again.

<!--CSS-->
 <style>
     .active{
         pointer-events: none;
     }
 </style>
 <!--HTML-->
 <ul>
     <li><a class="tab"></a></li>
     <li><a class="tab active"></a></li>
     <li><a class="tab"></a></li>
 </ul>

2. Switch on/offButtonState

When clicking the submit button, in order to prevent the user from clicking the button all the time, send a request. Before the request returns a result, add pointer-events: none to the button to prevent this situation. This situation is also very common in business.

<!--CSS-->
 .j-pro{
     pointer-events: none;
 }
 <!--HTML-->
 <button r-model={this.submit()} r-class={{"j-pro": flag}}>提交</button>
 <!--JS-->
 submit: function(){
     this.data.flag = true;
     this.$request(url, {
         // ...
         onload: function(json){
             if(json.retCode == 200){
                 this.data.flag = false;
             }
         }.bind(this)
         // ...
     });
 }

3. Prevent transparent elements and clickable elements from overlapping and not being clickable

In order to achieve some good-looking css effects in the display area of ​​some content, when there are other elements above the element to cover it, in order not to affect For the events of the lower element, adding pointer-events: none; to the covered element can be solved.

<!--CSS-->
 .layer{
     backround: linear-gradient(180deg, #fff, transparent);
 }
 .j-pro{
     poninter-events: none;
 }
 <!--HTML-->
 <ul>
     <li class="layer j-pro"></li>
     <li class="item"></li>
     <li class="item"></li>
     <li class="item"></li>
 </ul>

poninter-events Compatibility

I believe you have mastered the method after reading the case in this article. For more exciting things, please pay attention to php Other related articles on the Chinese website!

Recommended reading:

Detailed explanation of using pseudo elements::before and ::after

CSS3 makes a seamless wheel Play ads

CSS3 method to implement waterfall flow layout

The above is the detailed content of Detailed explanation of the use of pointer-events in css3. For more information, please follow other related articles on the PHP Chinese website!

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