आप एक स्वाइप वेग की गणना कर सकते हैं और कुछ थ्रेसहोल्ड मान के आधार पर गति स्क्रॉल होने पर पता लगाने की कोशिश कर सकते हैं। मैंने कुछ परीक्षण किया है और लगभग 0.25 पिक्सेल/एमएस एक अच्छा मूल्य प्रतीत होता है।
नोट: कभी-कभी गति कम करने के लिए गतिमान स्क्रॉलिंग भी होती है। मैंने जो गति स्क्रॉलिंग दर्ज की है, उसके लिए सबसे कम वेग 0.13 था (बहुत कम डेल्टा समय के साथ) ताकि आपको 100% सही समाधान की आवश्यकता हो, तो देखो।
उदाहरण कोड overscrolling का पता लगाता है और सौदों का पता लगाता है।
JQuery का उपयोग करना;
var scrollWrapper = $('#myWrapper');
var starTime, startScroll, waitForScrollEvent;
scrollWrapper.bind('touchstart', function() {
waitForScrollEvent = false;
});
scrollWrapper.bind('touchmove', function() {
startTime = new Date().getTime(); startScroll = scrollWrapper.scrollTop();
});
scrollWrapper.bind('touchend', function() {
var deltaTime = new Date().getTime() - startTime;
var deltaScroll = Math.abs(startScroll - scrollWrapper.scrollTop());
if (deltaScroll/deltaTime>0.25
|| scrollWrapper.scrollTop()<0
|| scrollWrapper.scrollTop()>scrollWrapper.height()) {
// will cause momentum scroll, wait for 'scroll' event
waitForScrollEvent = true;
}
else {
onScrollCompleted(); // assume no momentum scroll was initiated
}
startTime = 0;
});
scrollWrapper.bind('scroll', function() {
if (waitForScrollEvent) {
onScrollCompleted();
}
});
यह शानदार है! मैं एक आंतरिक div scrollable बनाने में संघर्ष कर रहा हूं, और गति को सक्षम करके, सभी स्नैप तर्क मैं खिड़की से बाहर गया था। आप दो अल्पविराम गायब हैं और रैपर चर परिभाषित नहीं किया गया है। अन्यथा यह बहुत अच्छा है! – Chris
खुशी है कि आपने इसे उपयोगी पाया है। त्रुटियों को इंगित करने के लिए धन्यवाद। – dagge
बहुत अच्छा है। इसके लिए एक डेमो बनाओ। दूसरों के लिए परिणाम जल्दी से जांचना उपयोगी हो सकता है –