mirror of
https://github.com/konvajs/konva.git
synced 2025-09-22 20:14:01 +08:00
preventDefault on drag on touch
This commit is contained in:
42
kinetic.js
42
kinetic.js
@@ -4,7 +4,7 @@
|
|||||||
* http://www.kineticjs.com/
|
* http://www.kineticjs.com/
|
||||||
* Copyright 2013, Eric Rowell
|
* Copyright 2013, Eric Rowell
|
||||||
* Licensed under the MIT or GPL Version 2 licenses.
|
* Licensed under the MIT or GPL Version 2 licenses.
|
||||||
* Date: 2014-05-02
|
* Date: 2014-05-03
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 - 2013 by Eric Rowell
|
* Copyright (C) 2011 - 2013 by Eric Rowell
|
||||||
*
|
*
|
||||||
@@ -9520,11 +9520,14 @@ var Kinetic = {};
|
|||||||
if ((typeof evt.webkitMovementX !== 'undefined' || typeof evt.webkitMovementY !== 'undefined') && evt.webkitMovementY === 0 && evt.webkitMovementX === 0) {
|
if ((typeof evt.webkitMovementX !== 'undefined' || typeof evt.webkitMovementY !== 'undefined') && evt.webkitMovementY === 0 && evt.webkitMovementX === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!Kinetic.UA.mobile) {
|
if (Kinetic.UA.mobile) {
|
||||||
this._setPointerPosition(evt);
|
return;
|
||||||
var dd = Kinetic.DD,
|
}
|
||||||
shape = this.getIntersection(this.getPointerPosition());
|
this._setPointerPosition(evt);
|
||||||
|
var dd = Kinetic.DD, shape;
|
||||||
|
|
||||||
|
if (!Kinetic.isDragging()) {
|
||||||
|
shape = this.getIntersection(this.getPointerPosition());
|
||||||
if(shape && shape.isListening()) {
|
if(shape && shape.isListening()) {
|
||||||
if(!Kinetic.isDragging() && (!this.targetShape || this.targetShape._id !== shape._id)) {
|
if(!Kinetic.isDragging() && (!this.targetShape || this.targetShape._id !== shape._id)) {
|
||||||
if(this.targetShape) {
|
if(this.targetShape) {
|
||||||
@@ -9554,10 +9557,9 @@ var Kinetic = {};
|
|||||||
|
|
||||||
// content event
|
// content event
|
||||||
this._fire(CONTENT_MOUSEMOVE, {evt: evt});
|
this._fire(CONTENT_MOUSEMOVE, {evt: evt});
|
||||||
|
}
|
||||||
if(dd) {
|
if(dd) {
|
||||||
dd._drag(evt);
|
dd._drag(evt);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// always call preventDefault for desktop events because some browsers
|
// always call preventDefault for desktop events because some browsers
|
||||||
@@ -9705,21 +9707,23 @@ var Kinetic = {};
|
|||||||
_touchmove: function(evt) {
|
_touchmove: function(evt) {
|
||||||
this._setPointerPosition(evt);
|
this._setPointerPosition(evt);
|
||||||
var dd = Kinetic.DD,
|
var dd = Kinetic.DD,
|
||||||
|
shape;
|
||||||
|
if (!Kinetic.isDragging()) {
|
||||||
shape = this.getIntersection(this.getPointerPosition());
|
shape = this.getIntersection(this.getPointerPosition());
|
||||||
|
if (shape && shape.isListening()) {
|
||||||
if (shape && shape.isListening()) {
|
shape._fireAndBubble(TOUCHMOVE, {evt: evt});
|
||||||
shape._fireAndBubble(TOUCHMOVE, {evt: evt});
|
// only call preventDefault if the shape is listening for events
|
||||||
|
if (shape.isListening() && evt.preventDefault) {
|
||||||
// only call preventDefault if the shape is listening for events
|
evt.preventDefault();
|
||||||
if (shape.isListening() && evt.preventDefault) {
|
}
|
||||||
evt.preventDefault();
|
|
||||||
}
|
}
|
||||||
|
this._fire(CONTENT_TOUCHMOVE, {evt: evt});
|
||||||
}
|
}
|
||||||
this._fire(CONTENT_TOUCHMOVE, {evt: evt});
|
|
||||||
|
|
||||||
// start drag and drop
|
|
||||||
if(dd) {
|
if(dd) {
|
||||||
dd._drag(evt);
|
dd._drag(evt);
|
||||||
|
if (Kinetic.isDragging()) {
|
||||||
|
evt.preventDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_setPointerPosition: function(evt) {
|
_setPointerPosition: function(evt) {
|
||||||
|
6
kinetic.min.js
vendored
6
kinetic.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -590,6 +590,9 @@
|
|||||||
}
|
}
|
||||||
if(dd) {
|
if(dd) {
|
||||||
dd._drag(evt);
|
dd._drag(evt);
|
||||||
|
if (Kinetic.isDragging()) {
|
||||||
|
evt.preventDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_setPointerPosition: function(evt) {
|
_setPointerPosition: function(evt) {
|
||||||
|
Reference in New Issue
Block a user