The issue:
..mobile browsers will wait approximately 300ms from the time that you tap the button to fire the click event. The reason for this is that the browser is waiting to see if you are actually performing a double tap.
(from a new defunct https://developers.google.com/mobile/articles/fast_buttons article)
touch-action
CSS property can be used to disable this behaviour.
touch-action: manipulation
The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming. Any additional behaviors supported by auto are out of scope for this specification.
– https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action#Values
touch-action
is now supported by all major mobile browsers.
Note that iOS 9.3 has not been released yet. (2016 02 13)
In ./webpack.js I am first detecting if the touch-action
property is supported. If it is, I am using it to set the style of document.body
. If it is not, then I am using webpack require.ensure
to download FastClick polyfill to fix the issue.