Hand.js is a polyfill for supporting pointer events on every browser
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Hand.js is now discontinued in favor of jQuery PEP: https://github.com/jquery/PEP


Starting in September 2012, Microsoft proposed a specification for unifying touch, pen and mouse events called pointer events.

Modern browsers are not yet all supporting it right. Only Internet Explorer 10+ and Microsoft Edge support it.

Hand.js is a polyfill that will allow you to write your code about touch only once even if the browser does not support pointer events.

Write once, use it everywhere! Don't bother with mouse and touch events. Pointer events are here for you.

You can find a test page right here: http://www.catuhe.com/msdn/handjs/index.html


You can use npm install handjs or bower install handjs to install it locally


Hand.js supports the following;

  • Works on IE9+, Chrome, Firefox, Opera, Safari
  • Support for:
  • pointerdown
  • pointermove
  • pointerup
  • pointercancel
  • pointerenter
  • pointerleave
  • pointerout
  • pointerover
  • Fallback to mouse
  • CSS analysis to support touch-action:none (can be disabled with HANDJS.doNotProcessCSS = true; )
  • Seamless integration into your pages

You can also find a complete blog about hand.js: http://blogs.msdn.com/b/eternalcoding/archive/2013/01/16/hand-js-a-polyfill-for-supporting-pointer-events-on-every-browser.aspx

Another article about pointer events and hand.js: http://blogs.msdn.com/b/davrous/archive/2013/02/20/handling-touch-in-your-html5-apps-thanks-to-the-pointer-events-of-ie10-and-windows-8.aspx