Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] pozycjonowanie diva po drop w droppable
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Avatarus
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()?
wookieb
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
Avatarus
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.?
wookieb
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.
Avatarus
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
zegarek84
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...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.