Einen Button brauchst du dazu nicht unbedingt, macht aber Sinn, damit bei einem versehentlichen Klick ins Bild nicht sofort eine Markierung gestartet wird.
Wenn der User also auf den Button "Markieren" klickt, setzt du eine globale variable auf true. Mit dem onmousedown-Event registrierst du die Klicks auf das Bild. Und mit dem onmousemove-Event (in dem du aber unbedingt überprüfen musst, ob die Maustaste gerade gedrückt ist und ob überhaupt markiert werden soll, weil das Event grundsätzlich immer feuert, sobald die Maus bewegt wird) kannst du dann rausfinden, wo sich die Maus gerade befindet.
Einen gut kommentierten und fertigen Code habe ich gerade nicht da, aber wenn du mal nach onmousedown, onmouseup und onmousemove googlest (am besten bei
SELFHTML: JavaScript/DOM vorbeigucken) wirst du sicher einiges lernen. Ich kann dir hier noch die Funktion zur Bestimmung der Maus-Position anfügen:
Code:
function mousePos(ev) {
ev = ev || window.event;
return {document.all ? ev.clientX : ev.pageX, document.all ? ev.clientY : ev.pageY};
}
ev ist meistens das onmousemove Event. Damit das in allen Browsern richtig funktioniert, würde ich die mousePos-Funktion folgendermassen aufrufen:
Code:
document.onmousemove = mousePos;
und das ausserhalb von allen Funktionen am besten in einem window.onload.
Falls du noch (viele) weitere Fragen hast, kannst du mich auch gerne per PN oder über MSN kontaktieren.
PS: Beim verändern des <div>s musst du dir genau überlegen, wie du das machst, denn je nachdem, wo der User seine Markierung anfängt, ist der Startpunkt (dort wo er zum ersten Mal klickt) natürlich nicht gleich der Punkt links oben.... Muss man halt bissl rechnen und rumprobieren, damit es richtig funktioniert
