2012-06-23 17 views
6

przeciągnięty więc istnieją pewne zdarzenia, które można używać do obsługi przeciągania & spadek:Jak styl elementu

https://developer.mozilla.org/en/DragDrop/Drag_and_Drop

jest drag wydarzenie, które wypala się w czasie element jest przeciągany. Mogę kontrolować styl elementu źródłowego lub docelowy kontener zrzucany, ale jak mogę stylizować element "duch", który jest tworzony przez przeglądarkę?

Chcę usunąć ikonę „wyłączony” z nim, gdy element jest na non-Draggable powierzchni i zastąpienie go „Kursor-move” ikona

Oto co mam do tej pory:

http://jsfiddle.net/YkaCM/

enter image description here

Odpowiedz

2

Nie jestem pewien o innych przeglądarek jednak przedmiotem dataTransfer zawiera właściwość o nazwie mozCursor. Pozwala to na zmianę kursora w stanie przeciągania, jednak jest to właściwość Mozilli.

https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/mozCursor

Przykładem wykorzystania tego można znaleźć w następującej lokalizacji, ustawienie zostanie zmienione na dragstart (zestaw użyć domyślnego „strzałka” kursora), dragover (zestaw do korzystania auto przeciągnij kursor (strzałka z kopia)) i dragleave (zresetowane użyć domyślnego 'strzałka' kursora):

http://jsfiddle.net/YkaCM/4/


Spróbuj odpowiedzi:
Javascript: How can I set the cursor during a drag & drop operation on a website?


zaktualizowaniu dragover z następujących czynności:

$('#droppable').bind('dragover', function (e) { 
    $(this).addClass('over'); // new 

    ... 

http://jsfiddle.net/YkaCM/1/

+0

Dzięki, że naprawia to, co myślałem, że usterki w przeglądarce, ale to nie rozwiązuje moje pytanie: P – Alex

+0

Nie sądzę, żeby można było stylizować element "duch". Gdy Firebug jest otwierany podczas testowania, nie widać żadnej zmiany w kodzie HTML. Czy masz przykłady tego, co chcesz osiągnąć? – JonWarnerNet

1

zasadzie chcesz zastosować konkretny styl nowo utworzony element, który jesteś synem #droppable?

#droppable div { here your code } 
+0

Nie .. opublikuję zrzut ekranu, aby go wyczyścić – Alex

13

Nie można projektować to bezpośrednio, ponieważ jest to mapa bitowa/kopia co element wyglądał gdy przeciągnij początek:

http://jsfiddle.net/2EvGP/

EDIT:

Ty może oszukiwać, aby to osiągnąć, krótko zmieniając styl elementu po rozpoczęciu przeciągania: http://jsfiddle.net/LULbV/

$('#draggable').bind('dragstart', function (e){ 

    [Set style here] 

    setTimeout(function(){ 
    [Reset style here] 
    }, 1); 

    ... 

}); 

Działa to bezbłędnie w przeglądarce Chrome 19 i pokazuje zmianę stylu w zależności od sposobu przeciągania w przeglądarce Firefox 13. Konieczne jest zresetowanie stylu przeciągania elementu po upuszczeniu.

(Uwaga mam dość szybki komputer, więc nie jestem pewien, czy to hack, by nadal pracować na wolnych komputerach)

+0

Działa świetnie, dzięki ... próbował użyć metody setDataImage (i innych metod dataTransfer) przed użyciem tego rozwiązania z mieszanymi wynikami. Wygląda na to, że w interfejsie DnD/Data Transfer API występują dziwne zachowania. –

Powiązane problemy