내 라이브러리 중 일부가 터치 장치와 작동하도록하려고하는데, 라이브러리가 지원되는 방식과 작동 방식을 파악하는 데 어려움을 겪고 있습니다.
기본적으로 5 개의 터치 이벤트 가 있지만 이벤트 에 대해서만 모바일 브라우저간에 합의가있는 것 같습니다 touchstart
(duh). 테스트 케이스로 바이올린 을 만들었습니다 .
Android 4가 탑재 된 Galaxy Note에서 이것을 테스트했지만 데스크톱 브라우저에서도 링크를 확인할 수 있습니다.
목표는 탭, 더블 탭 및 롱 탭을 처리하는 방법을 파악하는 것입니다. 멋진 것은 없습니다.
기본적으로 다음과 같은 일이 발생합니다.
안드로이드 재고 브라우저가 되지 화재 터치 이벤트를한다. 그냥 탭, 쏜 마우스 클릭 모방을 시도 mousedown
, mouseup
그리고 click
연속적으로 이벤트를하지만, 더블 탭은 그냥 그쪽으로 페이지를 확대하거나 축소.
Android 용 Chrome 은 손가락이 화면을 터치하면 touchstart 이벤트를 시작합니다. 그것이 곧 출시 있다면, 그 다음 발사 mousedown
, mouseup
, touchend
그리고 마지막 click
이벤트.
길게 두드리는 경우 약 0.5 초 후 mousedown
및 mouseup
, touchend
손가락을 떼면 click
끝에서 아무 이벤트 도 발생하지 않습니다 .
당신이 경우 손가락을 이동 , 그것은 발사 touchmove
몇 번, 다음은 화재 이벤트 touchcancel
이벤트를, 아무것도조차, 이후 발생하지 touchend
손가락을 들어 올릴 때 이벤트입니다.
더블 탭 IN / OUT 줌이 기능 트리거하지만 이벤트 현명한 콤보 화재 touchstart
- touchevent
두 배는 더 마우스 이벤트로는, 발사했다.
Android 용 Firefox 는 touchstart
이벤트를 올바르게 실행하고 짧은 탭 실행의 mousedown
경우 mouseup
, touchend
및 click
그 이후에 실행됩니다.
의 경우 긴 탭 , 그것은 화재 mousedown
, mouseup
그리고 마지막 touchend
이벤트. 이러한 점에 대해서는 Chrome과 동일합니다.
하지만이 경우 손가락을 이동 , 만약 화재 touchmove
지속적으로 (하나는 예상을했던 것으로서)하지만 아무튼 하지 화재 touchleave
이벤트를 할 때 손가락 나뭇잎 이벤트 리스너 요소 및 발생하지 않습니다 touchcancel
손가락이 브라우저 뷰포트의 출소 할 때 이벤트를 .
들어 더블 탭 , 그냥 크롬처럼 동작합니다.
Opera Mobile 은 짧은 탭으로 Chrome 및 Firefox와 동일한 작업을 수행하지만 길게 누르면 실제로 비활성화하고 싶은 일종의 공유 기능이 활성화됩니다. 손가락을 움직이거나 두 번 탭하면 Firefox처럼 작동합니다.
Chrome 베타 는 짧게 탭하는 경우 일반적인 작업을 수행하지만 긴 탭의 mouseup
경우 더 이상 이벤트를 실행 하지 않습니다 touchstart
. 그 mousedown
다음 0.5 초 후에 touchend
손가락을 떼면 더 이상 이벤트 가 발생하지 않습니다 . 손가락을 움직이면 이제 Firefox 및 Opera Mobile처럼 작동합니다.
의 경우 더블 탭 , 그것은 터치 이벤트를 발생하지 않습니다 축소 할 때 , 만에 확대 할 때.
Chrome 베타는 가장 이상한 동작을 보여 주지만 베타이기 때문에 불평 할 수는 없습니다.
문제는 터치 장치의 가장 일반적인 브라우저에서 짧은 탭, 긴 탭 및 이중 탭을 감지하는 간단하고 방법이 있습니까?
안타깝게도 Safari가 설치된 iOS 장치 또는 Windows Phone 7 / Phone 8 / RT 용 IE에서 테스트 할 수는 없지만 가능한 경우 피드백을 주시면 감사하겠습니다.