>  기사  >  위챗 애플릿  >  미니 프로그램: 마스크 레이어 클릭 후 마스크 레이어 아래 반응이 일어나는 것을 방지하는 솔루션

미니 프로그램: 마스크 레이어 클릭 후 마스크 레이어 아래 반응이 일어나는 것을 방지하는 솔루션

不言
不言원래의
2018-08-11 17:26:148219검색

이 글의 내용은 미니 프로그램에 관한 것입니다. 마스크 레이어를 클릭한 후 마스크 레이어 아래의 반응을 방지하는 솔루션입니다. 도움이 필요한 친구들이 참고하면 도움이 될 것입니다. 당신.

최근 커스텀 팝업창을 만들고 있는데, 마스크 레이어나 마스킹 레이어 사용은 불가피합니다.

그러나 중요한 점은 마스크 레이어가 있는 후에도 마스크 레이어 아래의 구성 요소를 클릭하면 여전히 클릭 이벤트가 생성된다는 것입니다.

이 문제를 해결하는 방법은 무엇입니까?

인터넷에는 여러 가지 방법이 나와 있습니다.
1. 마스크 레이어 뷰에 catchtouchmove 클릭 이벤트를 추가합니다. catch 이벤트 바인딩은 버블링 이벤트가 버블링되는 것을 방지할 수 있기 때문입니다.

<view class="mask" catchtouchmove="preventTouchMove" wx:if="{{showMask}}"/>

2. 동적으로 위치 추가:fixed;

<view style="{{hasMask?&#39;position:fixed;&#39;:&#39;&#39;}}>
    小程序弹出层点击穿透问题
    <button bindtap=&#39;showMask&#39;>弹出遮罩层</button>
</view>

연습을 통해 인터넷에서 처음 언급된 두 가지는 불가능합니다. 첫 번째는 내 자세가 잘못된 것인지 궁금합니다. 두 번째 유형은 순수한 속임수입니다! 아니면 그의 프로젝트가 성공했던 것은 단지 우연이었을 수도 있습니다.

아래에 소개된 방법이 아주 좋습니다.

3. wx:if 및 wx:else 또는 hide를 사용하여 디스플레이를 제어하세요. 마스크 레이어가 팝업되면 구성 요소가 표시되지 않습니다.
wx:if 또는 Hidden을 사용하는 경우 일반적으로 wx:if의 전환 비용이 더 높고 Hidden의 경우 초기 렌더링 비용이 더 높습니다. 따라서 빈번한 전환이 필요한 경우에는 hided가 더 좋고, 런타임 시 조건이 변경될 가능성이 없으면 wx:if가 더 좋습니다. 지침은 공식 문서를 참조하세요.

<!-- 遮罩层  --><view class="mask" wx:if="{{hasMask}}"/><view wx:else=&#39;{{!hasMask}}&#39; style=&#39;text-align:center;margin-top:50px;&#39;>
    <!-- 这里是不希望被点击的组件 …… -->
  <button bindtap="showMask" type=&#39;primary&#39; style=&#39;width:50%;&#39; >点我弹窗</button></view>

다음은 마스크 레이어 스타일에 대한 간략한 설명입니다

 /* 遮罩层 */.mask{  width: 100%;  height: 100%;  background: #000;  opacity: 0.5;  z-index: 9000;}

문제에 대한 해결책은 수천 가지가 있으며 각도를 변경하면 예상치 못한 이득을 얻을 수 있습니다.

프로젝트 주소: https://github.com/MoTec95/CustomPop

관련 추천:

WeChat 애플릿 예시: 한 사람 또는 그룹에게 공유하기 위한 판단 코드

WeChat 애플릿이 업로드 중입니다. 방법 이미지 크기 제한(코드 첨부)

미니 프로그램: JSON 객체 배열을 동적으로 추가하고 삭제하는 방법(코드 첨부)


위 내용은 미니 프로그램: 마스크 레이어 클릭 후 마스크 레이어 아래 반응이 일어나는 것을 방지하는 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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