पर भूतल प्रो 3 केवल Firefox के साथ:
जब एक तत्व पर एक उंगली के साथ एक स्वाइप इशारा कर रही है, ब्राउज़र होगा आग wheel
touchmove
या mousemove
घटनाओं की बजाय घटनाएं। आप पहिया व्यवहार को कैसे रोकते हैं, और एक अंगुली को हमेशा स्पर्श/माउस आंदोलन के रूप में माना जा सकता है?भूतल प्रो 3 Firefox के साथ - के बजाय पहिया घटनाओं के एकल स्पर्श ट्रिगर स्पर्श/माउस घटनाओं है
तो मैं wheel
घटनाओं के बजाय mousemove
या touchmove
की श्रृंखला के रूप में एक ही उंगली स्वाइप का इलाज करना चाहता हूं। मैं इस तत्व पर स्वाइप करने पर पेज को स्क्रॉल करने के लिए एक भी उंगली स्वाइप नहीं करना चाहता हूं। क्रोम और आईई 11 में करना आसान है। यह फ़ायरफ़ॉक्स में अभी संभव नहीं है। वर्तमान में मुझे लगता है कि यह एक बग है, लेकिन कुछ ऐसा हो सकता है जो मुझे याद आ रही है।
यहाँ एक साधारण उदाहरण है:
http://codepen.io/simonsarris/pen/PwbdRZ
var can = document.getElementById('can');
can.addEventListener('mousemove', function(e) {
// Will never happen on the Surface Pro 3 in Firefox
// Will happen in IE11 though
console.log('mouseMove')
});
can.addEventListener('touchmove', function(e) {
// Will never happen on the Surface Pro 3 in Firefox
// Will happen in Chrome though
console.log('touchMove')
});
// Stops the window from scrolling in firefox when you swipe on the element
// But stopping this does not allow the single touch gesture to register as mousemove or touchmove events
can.addEventListener('wheel', function(e) {
console.log('wheel')
e.preventDefault();
});
// consider also the 'DOMMouseScroll' event, though preventing this event will not stop firefox from panning the page.
क्योंकि मैं wheel
में डिफ़ॉल्ट रोकने कर रहा हूँ, पेज स्क्रॉल जब एक उंगली नीचे
खिड़की ऊपर स्वाइप या स्क्रॉल बंद कर दिया गया है अगर आप लाल बॉक्स में स्वाइप करते हैं तो फ़ायरफ़ॉक्स में बंद कर दिया जाता है, लेकिन कोई मूसमॉव या टचमोव इवेंट नहीं होगा। (फिर भी अगर आप ऊर्ध्वाधर रूप से क्षैतिज रूप से स्वाइप करते हैं तो मूसमॉव आग लग जाएगा)
मेरे पास हार्डवेयर तक पहुंच नहीं है, इसलिए मैं इसे स्वयं परीक्षण नहीं कर सकता, लेकिन क्या आप 'टचस्टार्ट' सुन रहे हैं? [एमडीएन पृष्ठ] (https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events) का अर्थ यह है कि यदि आप उस पर डिफ़ॉल्ट को रोकते हैं, तो आप * माउस घटनाएं नहीं प्राप्त करते - और हो सकता है कि माउस-स्क्रॉल ईवेंट 'टचमोव' दबा रहा हो। – Jeremy