2009-11-05 12 views
9

Ich finde Drag-and-Drop schwierig (Sie wissen, halten Sie die Maustaste gedrückt, während Sie sich bewegen), und bieten eine "Auswahl und Drop", wo ein Benutzer auf ein Symbol klickt und erneut auf die Zeichenplatte klickt das entsprechende Element (ein Bild).Wie machst du mit jquery ein Bild deinem Mauszeiger?

Wie machst du das mit jquery?

Danke.

Bearbeiten: Ich habe zwei divs, ein Symbol Platte, um Elemente aus, und eine Zeichnung Platte, wo Bilder fallen gelassen werden. Wenn die Maus die Zeichenplatte betritt, möchte ich eine 50% ige Opazität des größeren Bildes dem Mauszeiger folgen, so dass der Benutzer weiß, wo er hinfällt und ob er sich mit etwas überschneidet, das sich bereits auf dem Zeichenbrett befindet.

Antwort

28

Die Antwort (James Black Hilfe verwendet wird) ist:

HTML

<div id="sketch"></div> 
    <img src="cat.jpg" class="follow" style="position: absolute;"/> 

JQuery

$("#sketch").mousemove(function(e){ 
     $('.follow').css({'top': e.clientY - 20, 'left': e.clientX - 20}); 
}); 

Jsbin Demo here.

+0

Danke dafür: es hat mir gerade jetzt sehr geholfen! – uotonyh

+1

Gute Antwort @Majid. Beachten Sie jedoch, dass Sie ein Objekt auch an die Funktion .css() übergeben können, anstatt es mehrmals aufzurufen. ZB: $ ('. Follow'). Css ({'top': e.clenTY, 'left': e.clientX}); – AndyPerlitch

+0

@AndyPerlitch, danke! Ich aktualisiere die Antwort, um ein Objekt zu verwenden und führe einen einzelnen Aufruf von '.css()' durch. –

3

Speichern Sie das Element einfach in einer Variablen, auf die das click-Ereignis zugreifen kann.

Also, klicken Sie auf jedes Bild: $('img').bind('click', function(e) { ... }); Dann, wenn sie klicken, speichern Sie einfach das targetEvent irgendwo und binden Sie ein Klick-Ereignis an die Zeichenplatte.

Ein interessanter Weg wäre, einen Verschluss zu verwenden und das bestimmte targetEvent zu binden, so dass Sie im Falle eines Klicks auf die Zeichenplatte wissen, welcher zu bewegen ist, aber solange Sie wissen, werden Sie es einfach tun Verwenden Sie eine Animation, um das IMG an den neuen Ort zu verschieben.

Ich vergaß, Sie müssen auch sicherstellen, dass wenn ein Bild angeklickt wird, der Event-Handler, der bereits auf der Zeichenplatte ist, vor dem Binden eines neuen entfernt wird.

+0

Ich denke, das ist der Weg, es in Javascript ohne ein Framework zu tun. Ich hoffte, dass es einen leichteren Weg geben würde, die Kräfte von jQuery zu nutzen. Außerdem klickst du auf das Symbol, aber du lässt das Bild fallen und sie sind nicht dasselbe. –

+0

jQuery macht das einfacher, da es viel Arbeit abstrahiert, um es plattformübergreifend zu machen. Es wäre einfach zu implementieren, wenn es weniger als 30 Minuten dauert, mache ich es einfach selbst. Wenn Sie auf das Zeichenblatt klicken, nachdem Sie auf ein Bild geklickt haben, können Sie das Bild an die richtige Stelle klonen oder verschieben, als wäre es mit DnD gemacht worden. –

+0

Die ganze Idee ist ein Bild folgen Sie Ihrem Mauszeiger, während es in der Zeichenplatte ist. das Klonen des auf die Platte zu platzierenden Bildes ist kein Problem. –

Verwandte Themen