2009-06-20 7 views
18

Będę szczery, jestem poza moim zasięgiem. Stworzyłem system stronicowania, w którym klikasz na link, który ponownie ładuje stronę, a pewna liczba pozycji na liście jest wyświetlana na nieuporządkowanej liście. Po ponownym kliknięciu ponownie załaduje stronę i wyświetli się więcej elementów. Zastanów się, jak Twitter pokazuje tweety w Twoim kanale.Uzyskaj aktualną pozycję przewijania i podaj ją jako zmienną z łączem?

Problem polega na tym, że ponownie ładuje stronę, na której pozostaje u góry. Chciałbym, aby przeskoczył do tej samej pozycji na poprzedniej stronie.

Mam już selektor dla ustawienia łącza w porządku, po prostu nie wiem, jak uzyskać aktualną pozycję przewijania, a następnie przekazać ją do nowej strony, do której ma przejść.

Oto mój kod do tej pory:

jQuery(document).ready(function(){ 
    $("a[rel=more]").live("click", function(){ 
     //script... 
    }); 
}); 

Gdzie mam pójść stąd?

+0

Ja również pracuje nad AJAX do tej pracy, ale w tym celu, że muszę być w stanie odczytać zmienne XSLT z javascript. Możesz tu odpowiedzieć, jeśli chcesz: http://stackoverflow.com/questions/1022732/setting-an-xslt-variable-as-a-javascript-variable –

Odpowiedz

29
  1. Załaduj ponownie przedmioty za pomocą AJAX zamiast przeładować całą stronę.

  2. Uzyskaj i ustaw pozycję przewijania za pomocą window.pageYOffset i window.scrollTo(0, y).

    bym zapisać pozycję w hash URL:

    // after loading the document, scroll to the right position 
    // maybe location.hash has to be converted to a number first 
    $(document).ready(function() { 
        window.scrollTo(0, location.hash); 
    }); 
    
    // I'm not quite sure if reload() does preserve the hash tag. 
    location.hash = window.pageYOffset; 
    location.reload(); 
    
+2

jeśli ta lista jest przewijana DIV Jak ustawić pasek przewijania DIV, aby przewinąć do żądanej pozycji? –

+0

@asabo: Nie jestem do końca pewien, ale nie sądzę, że to możliwe. Musisz utworzyć niestandardowy widok przewijania. (Co nie jest takie trudne.) –

+2

Aby skorzystać z funkcji różnych przeglądarek, aby uzyskać przesunięcie strony, spróbuj: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow Przewiń w dół do funkcji getScrollXY(). –

2

Jak gs powiedział dodać elementy poprzez wywołanie AJAX zamiast od przeładowania strony.

Jeśli nie chcesz używać wtyczki jQuery.ScrollTo. Który obsługuje wszystko, co związane z przewijaniem, o którym mógłbyś kiedykolwiek marzyć o

1

zgodnie z linkiem @Shawna Grigsona, strona YOffset nie jest obsługiwany tak samo we wszystkich przeglądarkach.

Rozwiązanie jQuery (mam nadzieję, że jest kompatybilne z wieloma przeglądarkami, chociaż jeszcze go nie przetestowałem) w celu uzyskania i ustawienia pionowego zwoju elementu to scrollTop().

2

Myślę, że wystarczy przesłać kotwicę HTML na końcu linku. Przeglądarka przewinie się automatycznie do elementu bezpośrednio obok dopasowanej kotwicy. Przykład:

<a href="page2.html#myanchor">Next page</a> 

W pewnym momencie w środku page2:

<a name="myanchor">My item N</a> 
Powiązane problemy