2009-11-05 14 views
9

Uważam, że funkcja "przeciągnij i upuść" jest trudna (no wiesz, trzymanie wciśniętego przycisku myszy podczas ruchu) i chcesz zaproponować opcję "wybierz i upuść", w której użytkownik klika ikonę i klika ponownie na tablicy rysunkowej, aby upuścić odpowiedni element (obrazek).Jak zrobić zdjęcie za pomocą wskaźnika myszy z jquery?

Jak to zrobić z jquery?

Dzięki.

Edytuj: Mam dwa elementy div, płytkę z ikonami do wyboru elementów i tablicę rysunkową, na której zdjęcia są upuszczane. Kiedy mysz wchodzi do płyty rysunkowej, chcę, aby 50% krycia większego obrazu podążało za wskaźnikiem myszy, tak aby użytkownik wiedział, klikując, gdzie ma zostać upuszczone i czy pokrywa się z czymkolwiek już na desce kreślarskiej.

Odpowiedz

28

Odpowiedź (korzystania z pomocy Jamesa Blacka) wynosi:

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

Dzięki za to: bardzo mi to pomogło właśnie teraz! – uotonyh

+1

Dobra odpowiedź @Majid. Pamiętaj jednak, że możesz również przekazać obiekt do funkcji .css() zamiast wywoływać go wiele razy. Np .: $ ('. Follow'). Css ({'top': e.clentY, 'left': e.clientX}); – AndyPerlitch

+0

@AndyPerlitch, dzięki! Aktualizuję odpowiedź, aby użyć obiektu i wykonać pojedyncze wywołanie funkcji '.css()'. –

3

Wystarczy zapisać element w zmiennej, która jest dostępna dla zdarzenia kliknięcia.

Załóżmy, że na każdym obrazku znajduje się: $('img').bind('click', function(e) { ... }); Następnie, po kliknięciu, po prostu zapisz obiekt targetEvent i przypisz zdarzenie click do tablicy rysunkowej.

Ciekawym sposobem byłoby użycie zamknięcia i związanie tego konkretnego obiektu TargetEvent, tak aby w przypadku kliknięcia na tabliczkę znamionową użytkownik wiedział, do którego elementu należy się przenieść, ale tak długo, jak wiadomo, wystarczy użyj animacji, aby przenieść obraz do nowej lokalizacji.

Zapomniałem, musisz również upewnić się, że po kliknięciu obrazu, obsługa zdarzenia, która jest już na płycie rysunkowej, jest usuwana przed związaniem nowego.

+0

Myślę, że jest to sposób, aby to zrobić w javascript bez ramy. Miałem nadzieję, że będzie łatwiejszy sposób wykorzystania mocy jquery. Klikasz też ikonę, ale upuszczasz obraz i nie są one takie same. –

+0

jQuery ułatwia to zadanie, ponieważ znacznie upraszcza pracę na wielu platformach. Byłoby to łatwe do zrealizowania, jeśli zajmie to mniej niż 30 minut, po prostu robię to sam. Jeśli klikniesz na płytę rysunkową, po kliknięciu obrazu możesz sklonować lub przenieść plik img w odpowiednie miejsce, tak jak w przypadku DnD. –

+0

Cała idea polega na tym, aby obraz podążał za wskaźnikiem myszy, gdy znajduje się on na płycie rysunkowej. klonowanie obrazu, który ma zostać umieszczony na talerzu, nie stanowi problemu. –

Powiązane problemy