is there any nice and clean method or trick to find out if the user is on a touch-device or not?
I know there is stuff like var isiPad = navigator.userAgent.match(/iPad/i) != null;
but I simply wonder if there is a trick to generally determine if the user is on Touch device? Because there are a lot more touch devices and tablets out there then just iPads.
thank you.
matchMedia Test. Also, we can use the window. matchMedia method to test whether a device has any touchscreen features present.
You can use the following JS function:
function isTouchDevice() { var el = document.createElement('div'); el.setAttribute('ongesturestart', 'return;'); // or try "ontouchstart" return typeof el.ongesturestart === "function"; }
Source: Detecting touch-based browsing.
Please note the above code only tests if the browser has support for touch, not the device.
Related links:
There may be detection in jquery for mobile and jtouch
Include modernizer, which is a tiny feature detection library. Then you can use something like below.
if (Modernizr.touch){ // bind to touchstart, touchmove, etc and watch `event.streamId` } else { // bind to normal click, mousemove, etc }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With