Ich versuche mit JavaScript ein Bild auf dem Bildschirm ziehen. Ich habe bereits ein Skript geschrieben, das auf Divs mit Text funktioniert, aber wenn ich es auf einem Bild verwende, funktioniert es sehr zeitweise.Wie ziehe ich ein Bild mit reinem Javascript über den Bildschirm glatt
Ich habe meinen Code auf jsfiddle gesetzt, damit andere sehen können, was ich meine. http://jsfiddle.net/laurence/YNMEX/
Wenn Sie es ausführen, werden Sie feststellen, dass der Textblock gezogen werden kann, aber wenn Sie das gleiche mit dem Bild versuchen, hinterlässt es das Bild hinter sich. Es ist, als könnte das Bild nicht mit der Bewegung der Maus Schritt halten.
Ich habe den Code auf jsfiddle unten wiederholt:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Drag and drop</title>
<style type="text/css">
.dragme {
position:relative;
width: 270px;
height: 203px;
cursor: move;
}
#draggable {
background-color: #ccc;
border: 1px solid #000;
}
</style>
<script type="text/javascript">
function startDrag(e) {
// determine event object
if (!e) {
var e = window.event;
}
// IE uses srcElement, others use target
var targ = e.target ? e.target : e.srcElement;
if (targ.className != 'dragme') {return};
// calculate event X, Y coordinates
offsetX = e.clientX;
offsetY = e.clientY;
// assign default values for top and left properties
if(!targ.style.left) { targ.style.left='0px'};
if (!targ.style.top) { targ.style.top='0px'};
// calculate integer values for top and left
// properties
coordX = parseInt(targ.style.left);
coordY = parseInt(targ.style.top);
drag = true;
// move div element
document.onmousemove=dragDiv;
}
function dragDiv(e) {
if (!drag) {return};
if (!e) { var e= window.event};
var targ=e.target?e.target:e.srcElement;
// move div element
targ.style.left=coordX+e.clientX-offsetX+'px';
targ.style.top=coordY+e.clientY-offsetY+'px';
return false;
}
function stopDrag() {
drag=false;
}
window.onload = function() {
document.onmousedown = startDrag;
document.onmouseup = stopDrag;
}
</script>
</head>
<body>
<div id="draggable" class="dragme">"Hello World!"</div>
<img src="flower.jpg" alt="drag-and-drop image script"
title="drag-and-drop image script" class="dragme">
+1 für das Versuchen einer reinen Javascript-Lösung. Jetzt müssen wir nur warten, bis die "usage jquery" -Herde hereingestampft ist :). – Parrotmaster
Warum verwenden Sie nicht nur jQuery? – Aerovistae