jQuery Plugin For Touch & Drag Events - touch.js
| File Size: | 19.1 KB |
|---|---|
| Views Total: | 8670 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
touch.js is a small (9kb minified) JavaScript library that provides additional touch gesture and drag/drop events for your cross-platform jQuery project.
Additional events supported:
- tap
- doubleTap
- tapAndHold
- dragStart
- drag
- dragEnd
- dragEnter
- dragOver
- dragLeave
- drop
- swipe
- swipeUp
- swipeDown
- swipeLeft
- swipeRight
Basic usage:
1. Download & load the minified version of the jQuery touch.js and we're ready to go.
<script src="//code.jquery.com/jquery.min.js"></script> <!--<script src="//code.jquery.com/jquery-3.1.1.min.js"></script>--> <script src="jquery.touch.js"></script>
2. Bind drag/drop/tap/swipe events as follows:
// Bind events.
$.
.touch({
// Turn on document tracking so stuff works even if the cursor leaves the trackpad.
trackDocument: true,
// Normalize coordinates when/if the cursor leaves the trackpad.
trackDocumentNormalize: true,
// Prevent default events for drag/swipe (so the page doesn't scroll when you do those gestures).
preventDefault: {
drag: true,
swipe: true
}
})
// Tap events.
.on('tap', function(e, o) { _name('tap'); _status('Pos: ' + Math.round(o.ex) + ', ' + Math.round(o.ey)); })
.on('doubleTap', function(e, o) { _name('doubleTap'); _status('Pos: ' + Math.round(o.ex) + ', ' + Math.round(o.ey)); })
.on('tapAndHold', function(e, o) { _name('tapAndHold'); _status('Pos: ' + Math.round(o.ex) + ', ' + Math.round(o.ey)); })
// Drag events.
//.on('dragStart', function(e, o) { _name('dragStart'); _status('Pos: ' + o.ex + ', ' + o.ey); })
//.on('drag', function(e, o) { _name('drag'); _status('Pos: ' + o.ex + ', ' + o.ey); })
//.on('dragEnd', function(e, o) { _name('dragEnd'); _status('S: ' + o.start.ex + ', ' + o.start.ey + ', E: ' + o.end.ex + ', ' + o.end.ey + ', Dist: ' + Math.round(o.distance) + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); })
// Swipe event.
//.on('swipe', function(e, o) { _name('swipe'); _status('Dist: ' + o.distance + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); })
// Swipe events.
.on('swipeUp', function(e, o) { _name('swipeUp'); _status('Dist: ' + Math.round(o.distance) + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); })
.on('swipeDown', function(e, o) { _name('swipeDown'); _status('Dist: ' + Math.round(o.distance) + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); })
.on('swipeLeft', function(e, o) { _name('swipeLeft'); _status('Dist: ' + Math.round(o.distance) + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); })
.on('swipeRight', function(e, o) { _name('swipeRight'); _status('Dist: ' + Math.round(o.distance) + ', Dur: ' + o.duration + ', V: ' + Math.round(o.velocity)); });
3. All default configuration options.
// If true, mouse clicks and movements will also trigger touch events.
useMouse: true,
// If true, certain events (like drag) can continue to track even if the mouse cursor leaves the originating element.
trackDocument: false,
// If true, when "trackDocument" is enabled, coordinates will be normalized to the confines of the originating element.
trackDocumentNormalize: false,
// Disables "click" event (prevents both "tap" and "click" firing on certain elements like <label>).
noClick: false,
// Distance from tap to register a drag (lower = more sensitive, higher = less sensitive).
dragThreshold: 10,
// Time to wait before registering a drag (needs to be high enough to not interfere with scrolling).
dragDelay: 200,
// Distance from tap to register a swipe (lower = more sensitive, higher = less sensitive).
swipeThreshold: 30,
// Delay between taps.
tapDelay: 250,
// Time to wait before triggering "tapAndHold".
tapAndHoldDelay: 500,
// If defined, delegates touch events to descendants matching this selector.
delegateSelector: null,
// Filters drop target elements. Can be any of the following:
// - "selector" Target element must match this selector.
// - function(element, target) { ... } Use boolean return value of a custom callback.
// - true Target element must be a sibling of dragged element.
// - false No filtering.
dropFilter: false,
// Prevent or allow default actions for certain event classes. Can be any of the following:
// - true Prevent default actions for this event class.
// - false Allow default actions for this event class.
// - function(state) { ... } Use boolean return value of a custom callback (state = touch state object)
preventDefault: {
drag: false,
swipe: false,
tap: false
}
Change log:
2017-03-03
- v1.1.0
This awesome jQuery plugin is developed by ajlkn. For more Advanced Usages, please check the demo page or visit the official website.









