2015-01-05 5 views
6

पर भूतल प्रो 3 केवल Firefox के साथ:

जब एक तत्व पर एक उंगली के साथ एक स्वाइप इशारा कर रही है, ब्राउज़र होगा आग wheeltouchmove या 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 में डिफ़ॉल्ट रोकने कर रहा हूँ, पेज स्क्रॉल जब एक उंगली नीचे

खिड़की ऊपर स्वाइप या स्क्रॉल बंद कर दिया गया है अगर आप लाल बॉक्स में स्वाइप करते हैं तो फ़ायरफ़ॉक्स में बंद कर दिया जाता है, लेकिन कोई मूसमॉव या टचमोव इवेंट नहीं होगा। (फिर भी अगर आप ऊर्ध्वाधर रूप से क्षैतिज रूप से स्वाइप करते हैं तो मूसमॉव आग लग जाएगा)

+0

मेरे पास हार्डवेयर तक पहुंच नहीं है, इसलिए मैं इसे स्वयं परीक्षण नहीं कर सकता, लेकिन क्या आप 'टचस्टार्ट' सुन रहे हैं? [एमडीएन पृष्ठ] (https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events) का अर्थ यह है कि यदि आप उस पर डिफ़ॉल्ट को रोकते हैं, तो आप * माउस घटनाएं नहीं प्राप्त करते - और हो सकता है कि माउस-स्क्रॉल ईवेंट 'टचमोव' दबा रहा हो। – Jeremy

उत्तर

0

टच ईवेंट वर्तमान में फ़ायरफ़ॉक्स के डेस्कटॉप संस्करण (36.0.4) में अक्षम हैं, हालांकि वे मेट्रो मोड में फ़ायरफ़ॉक्स चलाने के दौरान या स्पष्ट रूप से उन्हें सक्षम करके काम करेंगे dom.w3c_touch_events.enabled सेटिंग। अधिक जानकारी के लिए the MDN article on Touch events देखें।

संबंधित मुद्दे