iPad에서 특별히 소비 할 수 있도록 HTML/JS 앱을 설계하고 있습니다. 앱에는 스크롤 가능한 요소가 있습니다.ipad에서 스크롤 가능한 div와 관련된 문제
문서의 너비와 높이를 각각 1024와 768로 설정했습니다. 나는 그때 그들이 제대로 스크롤 할 수 있도록 클래스를 스크롤 div에 대한
.scrollable {
overflow: auto;
-webkit-overflow-scrolling: touch;
}
를 사용
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
에보기 포트를 설정합니다. 마지막으로, 나는 스크롤 div의 나열을 허용하면서 문서 자체에 오버 스크롤 중지 자바 스크립트의 비트를 사용
$(document).on('touchmove',function(e){
e.preventDefault();
});
//uses body because jquery on events are called off of the element they are
//added to, so bubbling would not work if we used document instead.
$('body').on('touchstart','.scrollable',function(e) {
if (e.currentTarget.scrollTop === 0) {
e.currentTarget.scrollTop = 1;
} else if (e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight) {
e.currentTarget.scrollTop -= 1;
}
});
//prevents preventDefault from being called on document if it sees a scrollable div
$('body').on('touchmove','.scrollable',function(e) {
e.stopPropagation();
});
이 작품의 모두 - 대부분. 그러나 한 가지 걸림돌이 있습니다. 스크롤 할 수있는 요소에 스크롤이 필요한 내용이 충분하지 않으면 스크롤하려고하면 전체 문서에 대한 초과 스크롤이 시작됩니다. 수백 가지 블로그 및 기타 SO 질문을 읽었지만 이에 대한 해결책을 찾을 수 없습니다. 어떤 아이디어라도 대단히 감사하겠습니다.
빨리 문제를 해결하려면, 당신은 클래스의 최소 높이를 가질 수 있습니다. – Romain
스크롤 할 수있는 클래스는 런타임에 동적으로 결정되는 높이가있는 다른 위치에 있으므로 간단하지 않습니다. –