어떻게 원생 JS 를 이용 하여 터치 슬라이딩 감청 사건 을 실현 합 니까?
오늘 은 작은 Demo 를 쓰 는데 왼쪽 에서 오른쪽으로 미 끄 러 지 는 논리 와 관련 된 부분 이 있 습 니 다.플러그 인 을 사용 하려 고 했 는데 원생 JS 로 미 끄 러 지 는 감청 을 쓰 지 않 은 지 오래 되 었 다 는 생각 에 원생 JS 로 실현 해 보 았 습 니 다.온고지신 이 니까 기록 도 같이 하 겠 습 니 다.먼저 실 현 된 효 과 를 붙 입 니 다.
구상 하 다
미 끄 러 운 터치 슬라이딩 사건 의 감청 을 쓰 려 면 다음 과 같은 세 가지 논 리 를 고려 해 야 한다.
감청 사건
감청 터치 가 미 끄 러 지면 자 연 스 럽 게 다음 세 가지 터치 사건 이 필요 합 니 다.
1.touchstart 터치 시작,손가락 으로 화면 을 클릭 하면 터치(멀 티 터치 가능,뒤쪽 손가락 도 터치 가능)
2.touchmove 접점 변경,슬라이딩 시 지속 발동
3.터치 엔 드 터치 종료,손가락 이 화면 을 떠 날 때 터치
이 세 개의 터치 사건 은 각각 세 개의 터치 대상 목록 을 포함한다.(터치 점 에 따라 다 중 터치 제 어 를 실현 할 수 있다)
1.touches:현재 화면의 모든 손가락 터치 포인트 목록
2.targetTouches:현재 DOM 요소 의 손가락 목록
3.changed Touches:현재 이벤트 손가락 목록
동시에 모든 터치 대상 Touch 에 포 함 된 속성 은 다음 과 같 습 니 다.
-identifier:표지 터치 의 유일한 ID
-pageX:터치 포인트 가 페이지 에 있 는 x 좌표
-페이지 Y:터치 포인트 가 페이지 에 있 는 y 좌표
-screenX:터치 점 이 화면 에 있 는 x 좌표
-screenY:터치 포인트 가 화면 에 있 는 y 좌표
-clientX:터치 포인트 가 시야 에 있 는 x 좌표
-clientY:시점 에 있 는 y 좌 표를 터치 한다.
-target:터치 의 DOM 노드
코드 구현
위의 구상 과 터치 사건 의 기초 가 있 으 면 우 리 는 코드 를 쉽게 두 드 릴 수 있 습 니 다~
let box = document.querySelector('body') //
let startTime = '' //
let startDistanceX = '' // X
let startDistanceY = '' // Y
let endTime = '' //
let endDistanceX = '' // X
let endDistanceY = '' // Y
let moveTime = '' //
let moveDistanceX = '' // X
let moveDistanceY = '' // Y
box.addEventListener("touchstart", (e) => {
startTime = new Date().getTime()
startDistanceX = e.touches[0].screenX
startDistanceY = e.touches[0].screenY
})
box.addEventListener("touchend", (e) => {
endTime = new Date().getTime()
endDistanceX = e.changedTouches[0].screenX
endDistanceY = e.changedTouches[0].screenY
moveTime = endTime - startTime
moveDistanceX = startDistanceX - endDistanceX
moveDistanceY = startDistanceY - endDistanceY
console.log(moveDistanceX, moveDistanceY)
// 40 500
if ((Math.abs(moveDistanceX) > 40 || Math.abs(moveDistanceY) > 40) && moveTime < 500) {
// X Y
if (Math.abs(moveDistanceX) > Math.abs(moveDistanceY)) {
//
console.log(moveDistanceX > 0 ? ' ' : ' ')
} else {
//
console.log(moveDistanceY > 0 ? ' ' : ' ')
}
}
})
실행 해 보 세 요.이 를 통 해 알 수 있 듯 이 터치 시간 이 500 ms 이상 이면 촉발 되 지 않 고 미끄럼 거리 가 40 보다 작 아 도 촉발 되 지 않 으 며 각도 가 있 는 미끄럼 이 라면 XY 축 이동 거리 가 가장 먼 것 을 기준 으로 한다.완벽 한 실현!
후기
전단 틀 의 발전 이 날로 빨 라 지면 서 많은 사람들 이 직접 학습 틀 에 착수 하 는 것 도 부담 이 없고 원생 JS 의 학습 에 대해 그렇게 중시 하지 않 는 다.그러나 모든 변 화 는 그 종 류 를 떠 나 지 않 는 다.구조의 장점 은 그의 디자인 사상 과 모델 에 있다.깊이 이해 하려 면 원생 JS 를 바탕 으로 멀리 가 려 면 기 초 를 다 져 야 한다.왜냐하면 만장 의 고 층 건물 이 평지 에서 일어나 지 않 기 때문이다.
네 이 티 브 JS 를 이용 하여 터치 슬라이딩 감청 사건 을 어떻게 실현 하 는 지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 JS 터치 슬라이딩 감청 사건 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.