Ergebnis 1 bis 3 von 3
  1. #1
    oberheim ist offline Grünschnabel
    registriert
    07-06-2008
    Beiträge
    8

    Beim DIV-Reload Scrollposition behalten

    Hallo,
    ich bin mit der Such nichr weitergekommen. Vielleicht hilft mir trotzdem jemand :-)

    Ich aktualisiere alle 30sek. einen DIV-Bereich meiner Seite. Wenn nun der User diesen Bereich gerade nach unten gescrollt hat,weil er bei Artikel 78 ist, dann springt die Scrollposition nach dem Reload wieder nach oben, und der User muss umständlich seine alte Position suchen. Wie kann ich das Problem beheben?

    Folgenden Code nutze ich:

    HTML-Code:
    function update() {
             $("#inhaltsdiv").load("inhalt.php")
             evt.preventDefault();
          }
    function autoupdate() {
    	setInterval('update()',30000);
    }
    Danke im Voraus
    Geändert von mikdoe (11-06-2015 um 17:13 Uhr) Grund: code tags

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.757

    AW: Beim DIV-Reload Scrollposition behalten

    Prinzipiell wäre es sauberer, wenn du nicht den kompletten Inhalt austauschen würdest, sondern nur die Teile, die sich geändert haben... aber das nur nebenbei.

    Zu deinem speziellen Problem: Du darfst dabei nicht über die .load()-Funktion von jQuery gehen, da du dabei zu wenig Kontrolle über das Austauschen des Inhaltes hast.
    Denn du musst vor dem Tausch einfach die scrollposition (.scrollTop und .scrollLeft) in einer Variable speichern und dann nach dem Tausch wieder zurückschreiben.
    Du holst dir also die Sachen mit einem normalen AJAX, speicherst die Werte, schreibst das neue .innerHTML und setzt die Scrollposition wieder auf die alten Werte.

    PS: Dein Code erzeugt mit ziemlicher Sicherheit eine Fehlermeldung in der Fehlerkonsole (Wo finde ich die Fehlerkonsole?)...
    PPS: window.setTimeout sollte man als ersten Parameter keinen String übergeben.

  3. #3
    SteelWheel ist offline Haudegen
    registriert
    18-07-2012
    Beiträge
    600

    AW: Beim DIV-Reload Scrollposition behalten

    $.load() ist ein Shorthand von $.get() - Probleme oder gar eine Fehlermeldung gibt es mit dem Konstrukt oben zumindest nicht wegen der $.load()-Anweisung.

    Allerdings wegen "evt" und der schon erwähnten Interval-Setting selbst.

    Schöner: Du rufst die Funktion "update" auf und diese ruft sich immer wieder selbst mit ihrem eigenen Callback nach x Sekunden auf. Ebenso ist die Verwendung einer Variablen für Intervalle (oder auch Timeouts) immer hilfreich, damit man diese bei Bedarf auch stoppen könnte.

    Enjoy ...

Ähnliche Themen

  1. Nach Reload Dropdown werte (select) behalten
    Von no__body im Forum JavaScript
    Antworten: 38
    Letzter Beitrag: 05-01-2013, 17:19
  2. Antworten: 1
    Letzter Beitrag: 13-10-2012, 08:56
  3. Reload beim Versenden eines Formulars verhindern
    Von be4all im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 05-05-2008, 09:26
  4. [php-css] mozilla verändert menu beim reload
    Von HsF_Hellsing im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 16-10-2004, 10:55
  5. Formulardaten beim Aktualisieren behalten
    Von Veloce im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 19-05-2004, 12:56

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •