const bbox = canvas.select('.background');
const start = { x: 0, y: 0 };
const onStart = function (e) {
- const bounds = bbox.node().getBoundingClientRect();
start.x = e.x;
start.y = e.y;
- setDragging({
- icon: this.dataset['icon'],
- x: (e.x - bounds.x) / bounds.width,
- y: (e.y - bounds.y) / bounds.height,
- });
};
const onDrag = function (e) {
const bounds = bbox.node().getBoundingClientRect();
- setDragging({
- icon: this.dataset['icon'],
- x: (e.x - bounds.x) / bounds.width,
- y: (e.y - bounds.y) / bounds.height,
- });
+ const distance = Math.max(Math.abs(e.x - start.x), Math.abs(e.y - start.y));
+ if (distance > 5) {
+ setDragging({
+ icon: this.dataset['icon'],
+ x: (e.x - bounds.x) / bounds.width,
+ y: (e.y - bounds.y) / bounds.height,
+ });
+ } else {
+ setDragging(null);
+ }
};
const onEnd = function (e) {
const bounds = bbox.node().getBoundingClientRect();