interact.js is a standalone javascript module for handling single-pointer and multi-touch drags and gestures with powerful options such as inertia and snapping to grids or custom coordintes
G. Kurtenbach, G. Fitzmaurice, T. Baudel, and B. Buxton. Proceedings of the ACM SIGCHI Conference on Human factors in computing systems, page 35--42. New York, NY, USA, ACM, (1997)
P. Quinn, and A. Cockburn. Proceedings of the 21st Annual Conference of the Australian Computer-Human Interaction Special Interest Group: Design: Open 24/7, page 185--192. New York, NY, USA, ACM, (2009)
X. Qian, Y. Yang, and Y. Gong. Proceedings of the 10th International Conference on Virtual Reality Continuum and Its Applications in Industry, page 171--178. New York, NY, USA, ACM, (2011)