lorak110786
28.06.2011, 11:30:36
Mam następujący problem. Jest sobie strona jakiegoś produktu. Na górze jest jego opis a na dole zakładki (komentarze, zamienniki itp). Zakładki nie są zmieniane metodą hide/show tylko przeładowywana jest cała strona. Problem jest taki, że jak zjadę trochę w dół i chcę przełączyć się na drugą zakładkę, to strona jest przeładowywana i wraca na samą górę. Czy zna ktoś jakiś mechanizm/wtyczkę/cokolwiek, który pozwoli po .ready() przeskoczyć do żądanej wysokości strony? Jak to realizować?
Od razu podpowiem, że nie chodzi mi o plugin jQuery.scrollTo a bardziej o mechanizm, jak przekazać informację o bieżącym przesunięciu strony przed przeładowaniem.
thek
28.06.2011, 11:45:29
Może chodzi Ci o kotwicę zwykłą?
lorak110786
28.06.2011, 14:07:04
Nie.
Temat jest taki:
Użytkownik wchodzi na stronę, przewija ją trochę w dół, powiedzmy o 400px. Później klika na inną zakładkę (będąc w tym samym produkcie). Po bożemu zmiana zakładek działałaby tak, że pole zakładki zostaje wyczyszczone, ajaxem załadowałyby się dane i wpisały w pole. Zrobione jest natomiast tak, że strona się przeładowuje. Po przeładowaniu użytkownik znów wraca na samą górę, a chciałbym, aby automatycznie przeskoczył na wysokość na której się znajdował, czyli do 400px.
Gdzieś musiałbym zapisać jak bardzo przesunięta w dół jest strona, aby móc przeskoczyć do tego miejsca po przeładowaniu strony. Chodzi mi o coś na wzór $_SESSION dla javascript.
thek
28.06.2011, 14:59:10
Ale z tego co kojarzę, można zrobić odnośnik do kotwicy i to działa...
Link w stylu
<a href="http://www.domena.pl/strona.php#kotwica">Do zakładki
</a>
powinien działać
lorak110786
28.06.2011, 17:12:53
Już napisałem, że nie chcę przechodzić do kotwicy, tylko dokładnie do przesunięcia w którym był użytkownik przed przeładowaniem strony.
vokiel
28.06.2011, 17:24:16
No to w momencie, gdy użytkownik klika w link, zapisujesz do ciastka/sesji o ile strona jest przesunięta, a po załadowaniu strony sprawdzasz czy jest w ciastku/sesji taka wartość - jeśli jest to przesuwasz stronę do niej i ją usuwasz, jeśli nie ma to nic nie robisz
erix
28.06.2011, 18:21:53
Cytat
tylko dokładnie do przesunięcia w którym był użytkownik przed przeładowaniem strony.
Ja to widzę tak - korzystasz z
sessionStorage i jakiejś funkcji odpalanej co kilkaset ms i sprawdzasz offset. Albo jeszcze lepiej - przy zdarzeniu
onscroll. Potem, przy
onload ustawiasz offset przewinięcia.
Prościej się nie da. [;
lorak110786
29.06.2011, 09:31:52
Cytat(erix @ 28.06.2011, 19:21:53 )

Ja to widzę tak - korzystasz z sessionStorage i jakiejś funkcji odpalanej co kilkaset ms i sprawdzasz offset. Albo jeszcze lepiej - przy zdarzeniu onscroll. Potem, przy onload ustawiasz offset przewinięcia.
Prościej się nie da. [;
sessionStorage - dokładnie o to mi chodziło. Zaproponowane przez Ciebie rozwiązanie jak najbardziej mnie urządza:) Dziękuje za podpowiedź. Pozdrawiam:)
vokiel
29.06.2011, 22:51:25
Przy SessionStorage i LocalStorage trzeba jeszcze zwracać uwagę na kompatybilność przeglądarek. O ile dobrze kojarzę to DOM Storage jest wspierane w FF3.5+, Chrome4+, Safari4+, Opera10.5+, or IE8+
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.