2014-12-06 4 views
2

요소가 webkit-overflow-scrolling이 "touch"(iOS 장치의 경우 document.documentElement의 기본값)로 설정되어 있으면 사용자가 내용을 오버플로 할 수 있습니다. 사용자가 touchevent을 놓으면 요소가 0으로 스크롤 될 때까지 시간이 걸립니다.overscroll의 끝을 감지합니다.

오버 스크롤의 끝을 감지하는 방법은 무엇입니까?

답변

1
var overscroll; 

window.addEventListener('touchstart', function() { 
    // User has very quick fingers. 
    overscroll = false; 
}); 

window.addEventListener('touchend', function() { 
    // User released touch-drag event when element was in an overscroll state. 
    if (document.body.scrollTop < 0) { 
     overscroll = true; 
    } 
}); 

window.addEventListener('scroll', function() { 
    if (overscroll && document.body.scrollTop == 0) { 
     overscroll = false; 

     console.log('end of overscroll'); 
    } 
}); 
+0

이 기능은 톱 오버 스크롤에서만 작동하는 것 같습니다. 어쨌든, iOS Safari에서는'body.scrollTop'가 오버 스크롤 (overscroll) 하단에 긍정적입니다. 이 로직을 사용하여 바닥 오버 스캔을 감지했습니다 : 'const isOverscrolledBottom = body.scrollTop + window.innerHeight> body.scrollHeight' –

관련 문제