(Obsolete) Provides immediate visual feedback on touch for native-feeling web apps
JavaScript CoffeeScript HTML
Latest commit 53c7973 Apr 30, 2017 @tuxracer tuxracer Update contact info
Failed to load latest commit information.
demos Move buttons demo to demos folder Jan 10, 2014
src Add touchmove threshold to avoid canceling the event prematurely (esp… Aug 31, 2015
test Add support for IE11 Feb 4, 2014
.gitignore Added tests Sep 6, 2013
Gruntfile.coffee Add debug grunt build option Jan 10, 2014
README.md Update contact info May 1, 2017
bower.json Bump version to 3.1.2 May 1, 2017
touchclick.js Add touchmove threshold to avoid canceling the event prematurely (esp… Aug 31, 2015


⚠️ Note: This is no longer necessary, nor recommended for the latest versions of mobile browsers. See: https://webkit.org/blog/5610/more-responsive-tapping-on-ios/


This is a small jquery plugin that allows you to easily bind to the touch or click events depending on what's available for the given platform. Unlike similar scripts, this also provides immediate visual feedback on touch platforms -- just as native apps do.

Getting Started

  1. Include the touchclick.js file on the page after jquery, or require it with browserify.

  2. Bind to the touchclick event where you would have otherwise used click or touchend

	$(".menu-btn").on("touchclick", function () {
  1. Define a .touchactive style for the given element
	.menu.btn.touchactive {
		color: #eee;
		background-color: #333;
  1. Disable the default touch overlay so it doesn't interfere with your custom .touchactive style
	* {
            -webkit-touch-callout: none;
            -webkit-tap-highlight-color: rgba(0,0,0,0);
  1. (Optional) For delegated events add data-touchclick="true" to the element you want the touchactive class to be added to.
	<div class="menu btn" data-touchclick="true">Menu</div>

Traditional Solutions

Bind to touchend

Binding to touchend or using a script such as fastclick will remove the delay for triggering the event. However, unlike touchclick, they do not provide immediate visual feedback as native apps do.

Bind to touchend + provide a :hover style

Binding to touchend or using fastclick will remove the delay and provide some visual feedback. However, unlike touchclick and most native apps, when the user removes their finger from the element the :hover style sticks. While subtle, this still leaves web apps with a somewhat laggy feel.

Rely on tap-highlight-color

Some browsers will add a large translucent overlay when items are tapped. However you do not have control over the exact style of an actively pressed element. This typically ends up looking a bit janky.


Copyright (c) 2015, Derek Petersen

Licensed under the MIT license.