Tap
1Kb library for easy unified handling of user interactions such as mouse, touch and pointer events.
Install / Use
/learn @pukhalski/TapREADME
TAP.JS [DEPRECATED]
Tap is a Javascript library for easy unified handling of user interactions such as mouse, touch and pointer events.
- No need to detect what kind of events are supported,
Taphandles this for you - Small distribution size of 1Kb
- Use fastest event types supported (majority of browsers has ~300ms delay between touch/pointer events and click). Every millisecond does really matter!
Installation
If you are using Bower:
bower install tap
For npm users:
npm install tapjs
Otherwise just download the library.
Include it anywhere in your html file (it does not matter where — in <head> or not):
<script src="bower_components/tap/dist/tap.min.js"></script>
Usage
Using Tap is super easy. Just handle the 'tap' event in a way you are familiar with:
document.getElementById('any-element').addEventListener('tap', function (e) {
// All the magic happens here
});
With jQuery
$('#any-element').on('tap', function (e) {
// All the magic happens here
});
With Zepto
$('#any-element').on('tap', function (e) {
// All the magic happens here
});
With Dojo
var myButton = dojo.byId('any-element');
dojo.connect(myButton, 'tap', function(e){
// All the magic happens here
});
With YUI
YUI().use('event', 'node', function (Y) {
Y.one('#any-element').on('tap', function(e) {
// All the magic happens here
});
});
With ExtJS
Ext.get('any-element').on('tap', function (e) {
// All the magic happens here
});
With Meteor
First, install Meteor package:
meteor add jimbog:tap
Then, the tap event is used just like any other event in Meteor, here is an example for an anchor element:
Template.MyTemplate.events({
'tap a': function(evt, tmpl){
evt.preventDefault();
console.log('you tapped the link');
}
})
With Angular
Just add the code below or dist/tap.angular.js to your project, and use ng-tap insted of ng-click. Do not forget add ngTap as a dependency.
angular.module('ngTap', []).directive('ngTap', function() {
return function(scope, element, attrs) {
element.bind('tap', function() {
scope.$apply(attrs['ngTap'], element);
});
};
});
With Knockout
tap is not in the list of known events for Knockout, so use custom event binding to handle tap event:
<button data-bind="event: {tap: onAddToCart}">Add to cart</button>
Browser Support
Tap was tested on the wide range of devices:
- HTC T9295
- iPhone 4, 5s
- HTC Inspire 4G
- Motorola Xoom
- Nexus 4
- Nexus 5
- BlackBerry Bold 9800
- Acer S7
- Nokia Lumia 825
- Nokia Lumia 800
And browsers:
- Android Browser 2+
- BlackBerry Browser 6+
- Chrome 31+
- Firefox for Android
- Firefox 24+
- IE 9+
- Mobile Chrome
- Mobile Safari 5+
- Opera 12+
- Opera Mini
- Safari 5+
It doesn't mean that all other platforms and browsers (or older versions of them) are not supported.
LICENSE
Tap is distributed under MIT license. Enjoy!
Related Skills
node-connect
336.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.9kCommit, push, and open a PR

