Ich möchte Funktion zum Ziehen und Ablegen von Elementen auf meiner Seite machen. Wenn ich den Code unten verwende, bewegt sich das Element durch Berührung, aber es bleibt nicht in der Nähe des Fingers, wo ich geklopft habe (zum Beispiel in der Mitte oder links/rechts unten am Element), aber es bewegt sich vom Finger nach rechts unten. Was ich will - ist in der Lage sein, das Element zu verschieben, indem ich es nach dem Punkt ziehe, an dem ich geklopft habe.Touch-Drag-and-Drop-Positionierung in der Nähe von tap mit JS
function touchStart(e) {
e.preventDefault();
var whichArt = e.target;
resetZ();
whichArt.style.zIndex = 10;
}
function touchMove(e) {
e.preventDefault();
var dragElem = e.target;
var touch = e.touches[0];
var positionX = touch.pageX;
var positionY = touch.pageY;
dragElem.style.left = positionX + 'px';
dragElem.style.top = positionY + 'px';
}
document.querySelector('body').addEventListener('touchstart', touchStart, false);
document.querySelector('body').addEventListener('touchmove', touchMove, false);
<!--elements I want to drag-->
<img draggable="true" id="one" src="images/one.svg" style="position: absolute; left: 50px; top: 120px; z-index: 3;">
<img draggable="true" id="two" src="images/two.svg" style="position: absolute; left: 367px; top: 150px; z-index: 3;">
ich auch, um verschiedene Dinge versucht linke und rechte Position zu berechnen, aber es versäumt, zum Beispiel:
var moveOffsetX = dragElem.offsetLeft - touch.pageX;
var moveOffsetY = dragElem.offsetTop - touch.pageY;
var positionX = touch.pageX - moveOffsetX; /* + also tried*/
var positionY = touch.pageY - moveOffsetY; /* + also tried*/
Wie ist es möglich, das richtige Verhalten zu erreichen?
Dank ist, aber es ist nicht genau das, was ich brauchte, zentralisiert dies die Zapfstelle. Die Frage war, wie man sich nach dem Punkt bewegt, an dem ich gezogen habe. Zum Beispiel, wenn das Element ein großes Rechteck ist, wie kann ich es an der linken unteren Ecke ziehen, weil es so bequemer sein kann. http://interactjs.io/ - erstes Drag-Beispiel - ist was ich brauche, aber ich kann nicht wirklich verstehen, wie es dort funktioniert. – GingerN
Danke, jetzt klappt es richtig! – GingerN