Surface Pro 3 with Firefox - Have single touch trigger touch/mouse events instead of wheel events

On the Surface Pro 3 with Firefox only:

When making a swiping gesture with a single finger over an element, the browser will fire wheel events instead of touchmove or mousemove events. How do you stop the wheel behavior, and allow a single finger to always be treated as touch/mouse movement instead?

So I want to treat a single finger swipe as a series of mousemove or touchmove instead of as wheel events. I do not want a single finger swipe to scroll the page at all if swiping over this element. This is easy to do in Chrome and IE11. This seems not-possible right now in Firefox. Current I think this is a bug, but there may be something I'm missing.

Here is a simplistic example:

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.

Because I am preventing default in wheel, scrolling the page is stopped when one-finger swiping up or down

The window scrolling is stopped in firefox if you swipe in the red box, but no mousemove or touchmove events will fire. (yet mousemove will fire if you swipe horizontally instead of vertically)

Answers:

Answer

Touch events are currently disabled in the desktop version of Firefox (36.0.4), though they will work while running Firefox in Metro mode or by explicitly enabling them via the dom.w3c_touch_events.enabled setting. See the MDN article on Touch events for more information.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.