Skip to content

Commit

Permalink
feat: add dragend event (#90)
Browse files Browse the repository at this point in the history
* Trigger dragend manually if Hammer panning was not initiated yet.

* Check for isDraging because Chrome may fire mouseup without mousedown when clicking multiple times in a row.
  • Loading branch information
Forkest authored and gajus committed Jan 27, 2017
1 parent 910813e commit 9e9010e
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/Card.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const Card = (stack, targetElement) => {
let doMove;
let eventEmitter;
let isDraging;
let isPanning;
let lastThrow;
let lastTranslate;
let lastX;
Expand Down Expand Up @@ -159,6 +160,14 @@ const Card = (stack, targetElement) => {
eventEmitter.trigger('panstart');
});

targetElement.addEventListener('touchend', () => {
if (isDraging && !isPanning) {
eventEmitter.trigger('dragend', {
target: targetElement
});
}
});

// Disable scrolling while dragging the element on the touch enabled devices.
// @see http://stackoverflow.com/a/12090055/368691
(() => {
Expand All @@ -182,13 +191,26 @@ const Card = (stack, targetElement) => {
targetElement.addEventListener('mousedown', () => {
eventEmitter.trigger('panstart');
});

targetElement.addEventListener('mouseup', () => {
if (isDraging && !isPanning) {
eventEmitter.trigger('dragend', {
target: targetElement
});
}
});
}

mc.on('panstart', (event) => {
isPanning = true;
});

mc.on('panmove', (event) => {
eventEmitter.trigger('panmove', event);
});

mc.on('panend', (event) => {
isPanning = false;
eventEmitter.trigger('panend', event);
});

Expand Down

0 comments on commit 9e9010e

Please sign in to comment.