사용자가 손가락으로 위아래로 스크롤 할 수있는 구성 요소가 포함 된 웹 기반 응용 프로그램이 있습니다. 이벤트의 preventDefault 메서드를 사용하여 터치 동작이 iOS 장치에서 전체 화면을 이동시키는 기본 동작을 방지합니다.iOS 5에서 touchmove 이벤트의 기본 동작을 방지하려면 어떻게해야합니까?
내가 오늘 아침에 업그레이드 한 iOS 5에서는 불행히도 더 이상 작동하지 않는 것 같습니다. 나는 이것이 iOS 5에서 다르게 수행되었다고 가정해야하지만 지침을 제공하는 리소스를 아직 찾을 수 있어야합니다.
감사합니다.
업데이트 # 1 : 특정 질문에 대한 답변을 찾을 수 없었지만 -webkit-overflow-scrolling 스타일을 사용하기 위해 코드를 약간 조정할 수있었습니다 ("touch ") 스네이크 관성 스크롤 기능을 구현합니다 (스 와이프의 속도에 따라 내용이 더 빨리 스크롤되고 경계에 맞으면"고무 밴드가 튀어 오릅니다 ") ...
업데이트 # 2 : 난 이상한 문제가 생겼어. 오버 플로우 스크롤 동작이 때로는 혼란스러워서 내용물을 위아래로 움직이게하기 위해 손가락을 좌우로 드래그해야한다. 이것이 일어나는 이유를 알아내는 방법 - 누군가는 어떤 생각을 가지고 있습니까?
어쩌면 당신이 경우'같은 검사를 몇 가지 논리를 할 수있는 (.CSS를 $ (e.currentTarget) ('오버 플로우') = '스크롤'!) E : 요소는, 그러나 이것은 내 경우 zepto.js
tap
나누기 .preventDefault();'. scollable 요소의 ontouchmove 뒤에 document.ontouchmove가 실행되므로'el.ontouchmove = function() {allowScroll = true}'를 실행 한 다음'document.ontouchmove'가 그 값을 사용하여 동작을 결정한 다음 값을 다시 설정할 수 있습니다 거짓으로. –@BrianNickel 팁 주셔서 감사. 이것은 올바른 방향으로 나아가는 단계로서, 요소 단위로 직접 스크롤하는 것을 방지 할 수 있지만 (사용자가 직접 몸체를 스크롤하는 것을 포함하여), 사용자가 스크롤 가능한 요소의 가장자리에 이미있는 스크롤 가능한 요소를 터치하면 범위, 그것은 여전히 몸을 스크롤 (회색 리넨 아래에 표시) 결국 것입니다. 아마도 유일한 방법은 터치 이동 방향을 해석하고 요소가 스크롤 가능 범위의 가장자리에 있는지 확인하는 것입니다. –
@RyanRapp 귀하의 회신에 감사드립니다.아마도 내가 말하는 행동에 대해 명확하게 설명하지 않았을 것입니다. iOS 4에서는 엘리먼트 내의 손가락의 움직임을 기반으로 절대 위치 지정을 통해 내용을 이동할 수 있도록 오버플로의 touchmove 이벤트 핸들러가 포함 된 요소 (예 : DIV) 내에서 e.preventDefault()를 사용합니다. 스크롤하는 데 충분한 콘텐츠가없는 전체 페이지를 내 손가락으로 이동하려고 할 때 e.preventDefault()가이를 차단합니다. 너무 스크롤하지 않고 주위를 돌아 다니며 사파리의 배경 텍스처를 볼 수 있습니다. – natlee75