이 글은 위챗 미니 프로그램의 터치 이벤트에 대한 관련 정보를 주로 소개합니다. 위챗 미니 프로그램을 개발할 때 필연적으로 사용하게 될 내용입니다. 여기서는 편집자가 해당 지식을 참고할 수 있도록 도와드립니다.
위챗 미니 프로그램 터치 이벤트:
위챗 미니 프로그램의 '이벤트'는 매우 흥미롭습니다. 문서를 읽은 후 해당 기능이 매우 완벽하고 이벤트가 상위 노드로 전달될 수 있으며 이 이벤트에 인쇄된 정보가 매우 투명하므로 디버깅이 매우 편리하다는 것을 알았습니다.
다음, 여기에 문서를 복사하세요
원본 주소: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html
》》》이벤트란 무엇인가요?
이벤트는 뷰 레이어에서 로직 레이어로의 통신 방법입니다.
이벤트는 처리를 위해 사용자 행동을 논리 계층에 피드백할 수 있습니다.
이벤트는 구성요소에 바인딩될 수 있습니다. 트리거 이벤트에 도달하면 논리 레이어의 해당 이벤트 처리 기능이 실행됩니다.
이벤트 개체는 ID, 데이터 세트, 터치와 같은 추가 정보를 전달할 수 있습니다.
이벤트 사용 방법
컴포넌트에 이벤트 핸들러 함수를 바인딩합니다.
bindtap과 같이 사용자가 컴포넌트를 클릭하면 해당 페이지의 해당 페이지에서 해당 이벤트 처리 기능을 찾을 수 있습니다.
해당 페이지 정의에 해당 이벤트 핸들러 함수를 작성하세요. 매개변수는 이벤트입니다.
Page({ tapName: function(event) { console.log(event) } })
로그 정보는 대략 다음과 같은 것을 확인할 수 있습니다.
{ "type": "tap", "timeStamp": 1252, "target": { "id": "tapTest", "offsetLeft": 0, "offsetTop": 0, "dataset": { "hi": "MINA" } }, "currentTarget": { "id": "tapTest", "offsetLeft": 0, "offsetTop": 0, "dataset": { "hi": "MINA" } }, "touches": [{ "pageX": 30, "pageY": 12, "clientX": 30, "clientY": 12, "screenX": 112, "screenY": 151 }], "detail": { "x": 30, "y": 12 } }
상세 이벤트 설명
이벤트 분류
이벤트는 버블링으로 구분됩니다. 이벤트 및 비 버블링 이벤트:
버블 이벤트: 구성 요소의 이벤트가 트리거되면 해당 이벤트가 상위 노드로 전달됩니다.
버블링되지 않는 이벤트: 구성 요소의 이벤트가 트리거되면 이벤트가 상위 노드로 전달되지 않습니다.
》》》이벤트 분류
touchstart 손가락 터치
touchmove 터치 후 손가락 이동
touchcancel 팝업창, 전화 수신 알림 등 손가락 터치 동작이 중단됩니다
클릭(탭)
<view> <button type="primary" bindtouchstart="mytouchstart" bindtouchend="mytouchend" bindtap="mytap">点我吧</button> </view> mytouchstart: function(e){ console.log(e.timeStamp + '- touch start') },mytouchend: function(e){ console.log(e.timeStamp + '- touch end') },mytap: function(e){ console.log(e.timeStamp + '- tap') }
더블클릭
더블클릭 이벤트는 두 번의 클릭 이벤트로 구성되며, 두 번의 클릭 사이의 간격은 300ms 미만이며 위챗 공식으로 간주됩니다. 문서에는 두 번 클릭 이벤트가 없으며 개발자가 정의해야 합니다.
<view> <button type="primary" bindtap="mytap">点我吧</button> </view>
3. 길게 누르기
<view> <button type="primary" bindtouchstart="mytouchstart" bindlongtap="mylongtap" bindtouchend="mytouchend" bindtap="mytap">点我吧</button> </view> mytouchstart: function(e){ console.log(e.timeStamp + '- touch start') },//长按事件mylongtap: function(e){ console.log(e.timeStamp + '- long tap') },mytouchend: function(e){ console.log(e.timeStamp + '- touch end') },mytap: function(e){ console.log(e.timeStamp + '- tap') }
Event트리거 시퀀스
touchstart → touchend → tap
더블클릭
touchstart → touchend → tap → touchstart → touchend → tap
터치스타트 → 길게 누르기 → 터치엔드 → 탭 | |
---|---|