/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
this.mouseX = 0; this.mouseY = 0;
}
startDragging(ev) { // We want to handle a drag during a mouse button is pressed. So, we can // ignore pointer events which are caused by other devices. if (ev.pointerType != "mouse") { return;
}
// This allows for double-click. if (this.props.onDoubleClick && xDiff + yDiff <= 1) { return;
} this.mouseX = ev.clientX; this.mouseY = ev.clientY;
if (this.isDragging) { return;
} this.isDragging = true;
// "pointermove" is fired when the button state is changed too. Therefore, // we should listen to "mousemove" to handle the pointer position changes. this.draggableEl.current.addEventListener("mousemove", this.onMove); this.draggableEl.current.setPointerCapture(ev.pointerId); this.draggableEl.current.addEventListener( "mousedown",
event => event.preventDefault(),
{ once: true }
);
this.props.onStart && this.props.onStart();
}
onDoubleClick() { if (this.props.onDoubleClick) { this.props.onDoubleClick();
}
}
onMove(ev) { if (!this.isDragging) { return;
}
ev.preventDefault(); // Use viewport coordinates so, moving mouse over iframes // doesn't mangle (relative) coordinates. this.props.onMove(ev.clientX, ev.clientY);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.