Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] pozycjonowanie diva po drop w droppable
Avatarus
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


Witam
Potrzebuje wyrównać pozycję w kontenerach na draggable.
Wiadomo że jak się je przenosi to one nie koniecznie lądują równo.
Chciałbym żeby event drop w droppable wyrównywał element draggable.
wiem już że ustawienie mu pozycji top i left nic nie da bo on powróci wtedy do pierwotnego miejsca.
Trzeba mu chyba ustawić pozycję taką jak ma kontener.
jakieś pomysły?

już wiem jak ustalić pozycję, mam tylko jeszcze mały problem.
używam do tego opcji .animate();
przesuwam nim dany objekt.
Problem tylko taki że mogę pobrać dane kontenera w którym został zrzucony droppable(x i y) i pozycje upuszczonego draggable.
Sęk w tym, aby obliczyć poprawną pozycję do przesunięcia muszę mieć pozycję startowa draggable, a nie mogę się do niej dostać.
Mam tylko pozycję gdzie została zrzucona, a na tych danych nie wiem jak obliczyć przesunięcie żeby się ten element nałożył równo na kontener.

Gdyby to był statyczny skrypt to nie było by problemu, odwołałbym się do niego po nazwie, problem w tym że wszystkie dane zasysam z bazy, łącznie z id divów do przesuwania.

Co zasadniczo potrzebuje?
potrzebuje odwołać się do diva o id który mogę pobrać zmiennej
Kod
$(ui.draggable).attr('id');

to da mi nazwę id diva który przeciągam.
Tylko jak zrobić z niego zmienną tak żebym mógł do niej dodać funkcje .position()?

Ten post edytował Avatarus 27.08.2010, 09:44:54


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A czy nie wystarczy, że po prostu wrzucisz swojego draggable do droppable i tam wypozycjonujesz?

[JAVASCRIPT] pobierz, plaintext
  1. $('#'+$(ui.draggable).attr('id')); // twoj element
[JAVASCRIPT] pobierz, plaintext


Ten post edytował wookieb 27.08.2010, 10:00:52


--------------------
Go to the top of the page
+Quote Post
Avatarus
post
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


tylko jak?

bo pomimo że wyciągnę pozycję tak:
Kod
var start=$(ui.draggable).attr(\'id\');
            start2=$("#" + start + "").position();

to w funkcji drop jest niestety już pozycja po przesunięciu.
Jak w takim razie przesunąć to poprawnie.?


--------------------
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jeżeli element droppable będzie miał styl
  1. position: relative;

A twój element draggable wstawiony do elementu ( append w jquery ) droppable będzie miał styl
  1. position: absolute

To za pomocą polecena offset otrzymasz pozycję elementu draggable wrzuconego do droppable.


--------------------
Go to the top of the page
+Quote Post
Avatarus
post
Post #5





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


no niby rozumie o co chodzi ale jakoś nie potrafię tego zakodować.
Czy byłbyś tak miły i zrobił do tego kod prosty
Dzięki


--------------------
Go to the top of the page
+Quote Post
zegarek84
post
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


skoro po upuszczeniu elementu potem wiesz, na jaki obiekt go upuściłeś, to z tego co widzę [nie korzystam z jquery], w rzeczywistości element jest tylko przesunięty i zostawiony w określonym miejscu [nie jest tak, jakby się zdawało tłumaczyć "upuść"]...

rada:
po "upuszczeniu" elementu [przesunięciu] i wykonaniu animacji [o jakich wspomniałeś] wykonaj kolejną akcję ale na obiekcie na który upuszczasz z wykorzystaniem obiektu upuszczanego miejsce_zrzutu.append($el_zrzucany)... o ile ta metoda działa analogicznie do javascriptowego modelu DOM metody appendChild to zrzucanego elementu nie będziesz musiał z rodzica usuwać gdyż zostanie on jakby z automatu wycięty... elementy na które zrzucasz niech mają pozycjonowanie relatywne i teraz możesz juz doprecyzować wyrównanie wewnątrz ustawiając dla elementu zrzucanego wartości left i top które będzie względem kontenera do którego przyłączyłeś element...

Ten post edytował zegarek84 27.08.2010, 12:22:36


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 03:34