>웹 프론트엔드 >CSS 튜토리얼 >CSS3 포인터 이벤트 사용법에 대한 자세한 설명

CSS3 포인터 이벤트 사용법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-09-20 09:51:153281검색

이 글은 주로 css3 포인터 이벤트를 소개하고 있는데, 편집자는 꽤 좋다고 생각해서 지금부터 공유하고 참고하겠습니다. 에디터를 따라가며 함께 살펴볼까요

포인터 이벤트란 무엇인가요?

이름에서 알 수 있듯이 포인터 이벤트는 HTML 포인터 이벤트에 사용되는 속성입니다.

pointer-events는 hover/focus/active 및 기타 HTML 요소의 동적 효과를 비활성화할 수 있습니다.

기본값은 auto입니다. 구문은 다음과 같습니다.


코드는 다음과 같습니다.

pointer-events: auto | none | visiblefill | visible | | 채우기 | 스트로크 | 모두;

우리는 일반적으로 auto | none 속성을 사용합니다. 다른 속성은 SVG 요소에만 적용 가능합니다.

auto: 포인터 이벤트를 사용할 수 있습니다.


none: 포인터 이벤트를 비활성화합니다. 포인터가 비활성화된 요소에 하위/상위 요소가 있는 경우 시간 버블링/캡처 단계 중에 해당 하위/상위 요소에서 이벤트가 트리거됩니다.

일반적인 시나리오

1. 라벨 이벤트 효과 비활성화

탭 전환 시 현재 항목이 선택되면 현재 탭의 이벤트가 비활성화됩니다. 다른 탭을 전환할 때만 새 데이터가 다시 요청됩니다.

<!--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. 버튼 상태 전환

제출 버튼을 클릭할 때 사용자가 항상 버튼을 클릭하여 요청을 보내는 것을 방지하기 위해 요청이 결과를 반환하지 않는 경우, 방지하기 위해 포인터 이벤트 추가: 버튼에 없음 이 상황은 비즈니스에서 매우 일반적입니다.


<!--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. 투명 요소와 클릭 가능한 요소가 겹쳐서 클릭이 되지 않도록 방지

일부 콘텐츠의 표시 영역에서 멋진 CSS 효과를 얻기 위해 요소 위에 다른 요소가 있을 때 아래 요소의 이벤트에 영향을 주지 않도록 해당 요소에 포인터 이벤트를 추가하면 문제가 해결될 수 있습니다.


<!--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>

폰이벤트 간 호환성


위 내용은 CSS3 포인터 이벤트 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.