Czy można zmienić pozycję DIV z absolutnej na względną (i względną na bezwzględną)? DIV powinien pozostać w tym samym miejscu.Konwersja pozycji absolutnej na względną
Odpowiedz
można zmienić ten atrybut z
$(object).css({position: 'absolute'});
Na przykład:
Można użyć metod jQuery za .position()
lub .offset()
ustawienie „top” i atrybut css „left” aswell, że sposób Twój obiekt powinien pozostać w jego pozycji zmienia się z względnego -> absolutny.
Nie sądzę, że działa na odwrót.
kod demo: http://jsbin.com/uvoka
$ (obiekt) .css ({position: 'absolute', top: dy, left: dx}); clone.css ({position: 'relative'}); nie działa - pozycja elementu po zmianie na względną, pozycja jest inna , ale kiedy zapisałem offset i ustawiłem go ponownie po zmianie na względny, pozycja jest taka sama $ (obiekt) .css ({position: 'absolute', góra : dy, left: dx}); var x = clone.offset(). Left; var y = clone.offset(). Top; clone.css ({position: 'relative'}); przesunięcie ({top: y, lewe: x}); – John
szybkie przykładem possibilitys: http://jsbin.com/uvoka poważaniem, --Andy – jAndy
Sugerowany "rozwiązanie" nie jest konwersja nic !!! –
Można łatwo zmienić go od względem absolutnym używając To wartości offsetLeft i offsetTop jako lewy i gorny stylów.
Odwrotnie jest trudniej. Zasadniczo musisz zmienić go na względny i zobaczyć, gdzie skończył się, a następnie obliczyć nowe wartości przesunięcia z bieżącego przesunięcia i pożądanej lokalizacji.
Należy zauważyć, że gdy pozycjonowanie jest względne, element jest częścią przepływu stron i może wpływać na inne elementy. Gdy pozycja jest bezwzględna, element znajduje się poza przepływem strony i nie wpływa na inne elementy. Jeśli więc zmienisz pozycję bezwzględną i względną, konieczne może być wprowadzenie zmian w innych elementach także wtedy, gdy nie chcesz ich przenosić.
Ponieważ formatowanie w komentarzach nie działają będę publikować rozwiązanie tutaj
$(object).css({position: 'absolute',top: dy, left:dx});
// dy, dx - some coordinates
$(object).css({position: 'relative'});
Nie działa: położenie elementu po zmianie względem jest inny.
Ale kiedy przechowywany offset i ustawić go ponownie po zmianie względna pozycja jest taka sama:
$(object).css({position: 'absolute',top: dy, left:dx});
var x = $(object).offset().left;
var y = $(object).offset().top;
$(object).css({position: 'relative'});
$(object).offset({ top: y, left: x });
Thx za udostępnienie tego. naprawdę mi pomogło. –
Czy ten kod zmienia się z absolutnego na względny? – Varun
prototype.js ma element.absolutize() i element.relativize który działa bardzo dobrze.
Problem z wyjazdem z względem absolutnym że element.offsetTop i offsetLeft
tylko dać offset elemencie jego rodzica. Musisz zmierzyć cumualtive offsetu (tj
the offset of your element to its parent +
the offset of the parent to its parent +
the offset of its parent to its parent +
itp)
Zawsze zastanawiałem się, co ta metoda, faktycznie robi? Czy sprawi, że element dziecięcy "ciało" zachowa swoje położenie, dołączając je do ciała dokumentu? Czy może po prostu "absolutyzować" element w stosunku do rodzica? Jeśli to drugie, użyję rozwiązania powyżej twojego. Dzięki –
Jeśli naprawdę chcesz, aby uzyskać całkowitą górną przesunięcie elementu, który jest dzieckiem z elementów o pozycjach bezwzględnych i względnych mogłeś użyj tej funkcji
to jest w zasadzie kod dla rozwiązania podanego przez gniotownik powyżej.
Jest to idealne rozwiązanie dla elementów wewnątrz rodzica bez ciała, co jest dokładnie tym, czego wymagam. Dzięki. Właściwie używam framework prototype.js, więc zastanawiałem się, czy "absolutize()" robi to samo, co wspomniano poniżej, ale mam wrażenie, że czyni element jedynie "absolutnym", w stosunku do swojego rodzica, a nie do document body.So, użyję twojego rozwiązania ... –
- 1. obrazu w pozycji absolutnej dział
- 2. z-index nie pracuje z pozycji absolutnej
- 3. ekwiwalent początku transformacji dla pozycji absolutnej
- 4. css do wyświetlania div w pozycji absolutnej
- 5. Uzyskanie absolutnej pozycji elementu HTML w kontrolce przeglądarki z C#
- 6. Vertical align table-cell nie działają z pozycji absolutnej
- 7. CSS: Wydajność, lepiej używać calc lub pozycji absolutnej
- 8. Czy istnieje sposób, aby "position: absolute" div zachował względną szerokość?
- 9. za pomocą jQuery, aby uzyskać pozycję bezwzględną lub pozycję względną div
- 10. IE8 i IE9: przed i: po położeniu pozycji absolutnej są ukryte
- 11. Obliczyć względną Filepath
- 12. Czy można uzyskać funkcję absolutnej pozycji bez używania atrybutu position przez css?
- 13. RecyclerView android: Uzyskiwanie pozycji na określonej pozycji
- 14. Zmiana atrybutów widoku na pozycji pozycji listy
- 15. Przenieś w górę na folderze z absolutnej ścieżki
- 16. Tworzenie "przyklejonej" pozycji o ustalonej pozycji działającej w Safari na iOS
- 17. Skopiuj plik ze ścieżką względną
- 18. Odliczanie JavaScript przy użyciu strefy czasowej absolutnej?
- 19. QListWidget: Event na pozycji kliknij
- 20. ListView setText na określonej pozycji
- 21. utrzymanie pozycji strony na odświeżenie
- 22. Uzyskaj pozycji myszy na zwoju
- 23. Sprawdź tekst na pozycji recyklera
- 24. Orientacja pozycji listbox na poziomą
- 25. Konwersja NSData na base64
- 26. Konwersja html na excel?
- 27. Konwersja NSSound na AVAudioPlayer
- 28. Konwersja Integer na tablicy
- 29. Konwersja String na krótki
- 30. Konwersja CSV na tablicę
Czy pytasz "Czy pozostanie w tym samym miejscu?". Jeśli tak, to tak, ale jako względny, będzie w obiegu dokumentów, absolutny, nie będzie. – Zoidberg
Mam absolutnie pozycjonowane elementy, które powinny zostać przekonwertowane na względne.Problem polega na tym, że nie mogę obliczyć względnej prawej pozycji (góra, lewo), więc elementy będą przechowywane na swoich miejscach. – John