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 -------------------- |
|
|
|
![]() |
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?
Ten post edytował wookieb 27.08.2010, 10:00:52 -------------------- |
|
|
|
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.? -------------------- |
|
|
|
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
A twój element draggable wstawiony do elementu ( append w jquery ) droppable będzie miał styl
To za pomocą polecena offset otrzymasz pozycję elementu draggable wrzuconego do droppable. -------------------- |
|
|
|
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 -------------------- |
|
|
|
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ę.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 03:34 |