2014-10-21 1 views
2

저는 최근에 프로젝트에서 연결을 끊었으며 지금까지 Chrome 디버거 모바일 에뮬레이터를 사용해 왔습니다. 즉 마우스를 사용하여 터치를 시뮬레이트하고 동작을 끌 수있었습니다. 불행히도 한 마리의 마우스 만 가지고 있기 때문에 동시에 둘 다 할 수 없었습니다.touchmove를 감지하는 동안 touchstart 감지

프로젝트에서 두 개의 절반 페이지 크기의 DOM 요소를 페이지에 추가합니다. 왼쪽에는 하나의 touchmove 이벤트 리스너가 있고 다른 하나에는 오른쪽에 터치 이벤트 리스너가 있습니다. 그것. 그들은 둘 다 활발하게 일합니다.

하지만 오늘 밤에 일부 프로젝트를 온라인으로 업로드하여 프로젝트를 테스트하고 iPad로 열었습니다. 한 번에 하나의 작업 만 수행 할 수있었습니다. 왼쪽에서 touchmoved하는 동안 페이지가 오른쪽의 터치 시작 이벤트를 감지하지 못했고 오른쪽에서 탭한 동안 왼쪽의 touchmove 이벤트를 감지 할 수 없었습니다.

누구나 이전에 이와 같은 작업을 수행 했습니까? 별도의 DOM 요소에서 서로 다른 일련의 감각을 감지하는 것처럼?

코드 조각이 여기에 포함 조금 큰하지만 github에의 REPO에 대한 링크는 여기에 있습니다 : https://github.com/matthewolsson/JoyShtick

답변

1

DOM 요소는 하나의 터치 배열를 공유 할 수 있습니다. 이 테스트 단계 이전에는 터치 리스너가 적용된 개별 DOM 요소에 고유 한 터치 배열이 있다는 가정하에있었습니다. 이제는 페이지의 모든 요소가 리스너와 상관없이 페이지의 모든 현재 접촉을 저장하는 하나의 단일 터치 배열에 기여한다는 것을 알고 있습니다.

이 사실을 알고 난 후 targetTouches 터치리스트를 사용하여 상황을 수정했습니다. 이 링크는 좋은 요약을 제공하지만 기본 사항은 첫 번째 요소가 시작된 DOM 요소 내에서 발생하는 터치만으로 채워지는 일련의 접촉입니다.

이 목록에 대한 환상적인 설명을 찾을 수 있습니다. 여기 ~ (stackoverflow.com/questions/7056026/variation-of-e-touches-e-targettouches-and-e-changedtouches). 마지막으로 W3C는 터치 이벤트와 모든 기능에 대해 매우 상세한 page을 가지고 있습니다.

+0

10 시간을 기다려야합니다. 0_0 – matthewolsson

관련 문제