Javascript libraries for dealing with touch events, multitouch, normalizing across the Webkit/IE touch models, and all that jazz.

## Touch Event Libraries

### Dojo

* [dojo/touch](http://dojotoolkit.org/reference-guide/1.7/dojo/touch.html) - Dojo detection functions for touch events

### jQuery

* [jquery.doubletap](https://github.com/technoweenie/jquery.doubletap) - Custom touch events for jQuery. [Demo](http://techno-weenie.net/jquery.doubletap/).
* [Touchy](https://github.com/HotStudio/touchy) - Highly configurable jQuery plugin. Exposes event data (velocity, etc) for longpress, drag, pinch, rotate, swipe. Example use cases: prevent conflict between drag and swipe; get pinch abstracted across Android and iOS; create a [single finger rotation](http://hotstudio.github.com/touchy/examples/wheel.html). 
* [jQuery UI Interactions](http://wiki.jqueryui.com/Interaction) - Rewrite of the existing jQuery UI interactions, now with mouse, touche and pointer (aka MSPointer) support. Work in progress, but draggable already works great for all three event APIs.
* [jquery-ui-touch-punch](https://github.com/furf/jquery-ui-touch-punch) - A duck punch for adding touch events to jQuery UI
* [pep.jquery.js](http://pep.briangonzalez.org) - A lightweight plugin for kinetic-drag on mobile & desktop
* [jQuery.event.move](http://github.com/stephband/jquery.event.move/) - jQuery special events <b>movestart</b>, <b>move</b> and <b>moveend</b> for tracking touch and mouse moves, throttled to browser animation frames, and exposing information about distance and velocity of fingers. Demo at [stephband.info/jquery.event.move/](http://stephband.info/jquery.event.move/).
* [jQuery.event.swipe](http://github.com/stephband/jquery.event.swipe/) - jQuery special events for the gestures <b>swipeleft</b>, <b>swiperight</b>, <b>swipeup</b> and <b>swipedown</b>, built on top of jQuery.event.move. Demo at [stephband.info/jquery.event.swipe/](http://stephband.info/jquery.event.swipe/).
* [jQuery Mobile vmouse](https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.vmouse.js) - from the jQuery Mobile team. Supports normalized handling of mouse and touch events under one event convention: vclick, vmousedown, vmouseup, vmousemove, etc.
* [Touchable](https://github.com/dotmaster/Touchable-jQuery-Plugin) - Unifies touch and mouse events
* http://jgestures.codeplex.com/
* http://labs.skinkers.com/touchSwipe/
* [TipTap](https://github.com/marcbourlon/TipTap): normalizes mouse and touch events, and provides simple definition of complex gestures (any combination of tap, swipe, etc.) with simple callbacks.
* [jQuery Touch Gestures](https://gist.github.com/4044976): Touch Gestures ported and fixed from QUOjs project. <b>Available gestures:</b> singleTap | doubleTap | hold | swipe | swiping | swipeLeft | swipeRight | swipeUp | swipeDown | rotate | rotating | rotateLeft | rotateRight | pinch | pinching | pinchIn | pinchOut | drag | dragLeft | dragRight | dragUp | dragDown

### MooTools

* [mootools-mobile](https://github.com/cpojer/mootools-mobile) - Wraps click handlers with touch and provides some custom events.

### YUI

* [YUI 3 touch abstraction](http://yuilibrary.com/yui/docs/event/touch.html) - support for subscribing to native touch and gesture events

### Zepto

* https://github.com/max-power/swipeslide - Provides iOS like swipe navigation. WebKit only.

### Other

* [Event.js](https://github.com/mudcube/Event.js) - Multi-touch events library, and abstractions.
* [pointer.js](https://github.com/borismus/pointer.js) - a pointer event polyfill.
* [jsTouchLayer](https://github.com/andyjamesdavies/jsTouchLayer) - A javascript based touch events library, agnostic of any javascript libraries. Missing pinch/spread atm.
* [interact](https://github.com/DamonOehlman/interact) - abstracted mouse and touch events into generic pointer events.  Uses [eve](https://github.com/DmitryBaranovskiy/eve) under the hood.
* [tap.js](https://github.com/alexgibson/tap.js) - A lightweight 'tap' event JavaScript plugin for mobile browsers (no dependencies)
* [tappable](https://github.com/cheeaun/tappable) - A simple, standalone library to invoke the tap event for touch-friendly web browsers.
* [Touchy](https://github.com/jairajs89/Touchy.js) - Lightweight (no dependencies) multi-touch, models individual fingers
* [Touch](https://github.com/rasismeiro/touch) - Simple library, enables touch events, such as: swipe, pinch and tap. 
* [thumbsjs](http://mwbrooks.github.com/thumbs.js) - from the PhoneGap team. Heavily tested on many devices. Mature.
* [touch-layer](https://github.com/cubiq/touch-layer) - Custom events and gestures handler for touch enable mobile devices.
* [WKTouch](https://github.com/alexgibson/WKTouch) - Hardware accelerated multi-touch drag, scale and rotate plugin for Mobile Webkit.
* [MagicTouch.js](https://github.com/borismus/MagicTouch) - Standards-compatible touch event polyfill to map trackpad touches to touch events. Uses NPAPI plugin.
* [Hammer.js](https://github.com/EightMedia/hammer.js/) - Lightweight library for multi-touch gestures

## Gestures

* [Hammer.js](http://eightmedia.github.com/hammer.js/) - A javascript library (only 2kb) for multi-touch gestures: Tap, Drag, Pinch, Hold
* [Ember-Touch](https://github.com/emberjs-addons/ember-touch/) - A lightweight library for building and using touch gestures with Ember Applications.
* [Jester](https://github.com/plainview/Jester) - Easy JavaScript gesture recognition for iPhone and iPad.
* [Mobile-Web-based-Gesture-Recognition](https://github.com/taitems/Mobile-Web-based-Gesture-Recognition) - Based on [Dollar](http://depts.washington.edu/aimgroup/proj/dollar/). [Demo](http://taitems.github.com/Mobile-Web-based-Gesture-Recognition/).
* [shake.js](https://github.com/alexgibson/shake.js) - A custom 'shake' event plugin for mobile web browsers using device accelerometer. (Okay, not strictly touch, but it does require you to use your hand :P)
* [dojox/gesture](http://dojotoolkit.org/reference-guide/1.7/dojox/gesture.html) - Dojo detection functions for gesture events

## Scrolling

* [TouchScroll](http://uxebu.com/blog/2010/04/27/touchscroll-a-scrolling-layer-for-webkit-mobile/)
* [iScroll](http://cubiq.org/iscroll-4)
* [Scrollability](http://joehewitt.github.com/scrollability/)
* [Overthrow](https://github.com/filamentgroup/Overthrow)
* [AntiScroll](http://learnboost.github.com/antiscroll/)
* [Droid Scroll Emulation](http://iwantaneff.in/repo/plugins/droid-touch/droid.scroll/)
* [jQuery Overscroll](http://www.azoffdesign.com/overscroll)
* [Zynga Scroller](http://zynga.github.com/scroller/)

## Speeding Up Click Events

* [FastButton](http://code.google.com/mobile/articles/fast_buttons.html)
* [energize.js](https://github.com/davidcalhoun/energize.js)
* [Lightning Touch](https://github.com/ucsf-ckm/LightningTouch)

# Debugging

* [phantom limb](http://www.vodori.com/blog/phantom-limb.html) - make desktop browsers simulate touch events. with a big hand
* [touche](https://github.com/davidcalhoun/touche)

## Touch Specific Components

* [Swipe JS](http://swipejs.com/) - carousel (aka slider) component that is touch friendly
* [Swiper](http://www.idangero.us/sliders/swiper/) - mobile touch slider with hardware accelerated transitions
* [jQuery Mobile Pagination](https://github.com/filamentgroup/jqm-pagination) - touch-drag pagination between separate HTML documents or jQuery Mobile "pages"
* [wkslider](https://github.com/alexgibson/WKSlider) - A touch–optimised UI range slider JavaScript plugin (no dependencies)

## Multimedia (videos, tutorials, etc.)

### Videos

* [Creating Responsive HTML5 Touch Interfaces (Stephen Woods, Flickr)](http://www.yuiblog.com/blog/2012/02/23/video-stephen-woods-html5-touch/)
* [Google I/O 2013 - Point, Click, Tap, Touch - Building Multi-Device Web Interfaces]
(http://www.youtube.com/watch?v=DujfpXOKUp8) - [Slides](https://docs.google.com/presentation/d/1-n1qyzewpagREbzW2zm0wOalq33UhbtbSkWf9mEdly8/edit#slide=id.gba38d212_0114)
* [Getting Touchy Feely with the Mobile Web - Andrew Fisher (8 Aug 2012)](https://www.youtube.com/watch?v=SZEr5Fu0MxA&feature=youtube_gdata_player)
* [Mark Dalgleish - Embracing Touch: Cross Platform Scrolling (8 Mar 2013)](https://www.youtube.com/watch?v=Ii5AkRNSVHg&feature=youtube_gdata_player)