www.html5rocks.com/en/mobile/touchandmouse/
모바일 사파리에서 터치를 시도하면 아래와 같은 이벤트가 순서대로 발생한다.
touchstart - touchend - mouseover - mousemove - mousedown - mouseup - click
마우스가 존재하진 않지만, 내부적으로는 터치 이벤트 뿐만 아니라 마우스 이벤트도 발생하는 것을 볼 수 있다.
중요한 건, mouseover 시점에서 화면이 변경될 경우, 이벤트가 멈춘다는 것이다.
(이벤트 발생 프로세스의 자세한 내용은 Safari Developer Library의 Handling Events 챕터를 참고.)
위 문서에는 '화면이 변경(if the contents of page changes)'되는 것에 대한 명확한 정의는 없다.
테스트 해본 결과, '화면이 변경'된다는 것은 정확하게는 '레이아웃이 변경(reflow)'되는 것에 가까운 것 같다.
백그라운드가 변경된다거나, 레이아웃에 영향을 끼치지 않는 정도의 margin/padding이 변경되는 경우(repaint)에는 이벤트가 종료되지 않는다.
따라서, 두 번 클릭해야 실행되는 문제를 해결하기 위해서는,
터치 인터페이스에서는 mouseover 이벤트가 발생했을 때 화면 변경이 되지 않도록 해야 한다.
마우스를 시뮬레이션하기 위해 Webkit 모바일과 같은 브라우저는 사용자가 터치 스크린 (예 : iPad)에서 손가락을 뗀 경우 다음 이벤트를 발생시킵니다 (출처 : html5rocks.com의 Touch And Mouse ).
- touchstart
- touchmove
- touchend
- 300ms 지연, 브라우저는 이것이 두 번 탭이 아니라 한 번 탭인지 확인합니다.
- mouseover
- mouseenter
- 참고 하십시오 경우 mouseover, mouseenter또는 mousemove이벤트 페이지 내용을 변경, 다음 이벤트가 실행되지 않습니다.
- mousemove
- mousedown
- mouseup
- click
단순히 웹 브라우저에 마우스 이벤트를 건너 뛰도록 지시하는 것은 불가능 해 보입니다.
더 나쁜 것은 마우스 오버 이벤트가 페이지 콘텐츠를 변경하는 경우 Safari 웹 콘텐츠 가이드-이벤트 처리 , 특히 One-Finger 이벤트의 그림 6.4에 설명 된대로 클릭 이벤트가 발생하지 않는다는 것 입니다. 정확히 "컨텐츠 변경"은 브라우저와 버전에 따라 다릅니다. iOS 7.0의 경우 배경색 변경은 콘텐츠 변경이 아닙니다 (또는 더 이상 변경되지 않습니까?).
qastack.kr/programming/8291517/disable-hover-effects-on-mobile-browsers
'Librarys > 모바일' 카테고리의 다른 글
Galaxy Foldable 폴더폰 해상도 (Viewport) (0) | 2021.12.13 |
---|---|
[IOS] safari에서 확대 축소 막기 (0) | 2020.10.22 |
모바일웹 브라우저 해상도사이즈 상세 (0) | 2020.09.08 |
아이폰5 (테스트 버전 ios8.4) 미지원 (0) | 2019.12.10 |
iPhone 11 /iPhone 11 Pro/iPhone 11 Pro Max MediaQuery (0) | 2019.11.06 |
Device Media Queries (0) | 2019.10.17 |