2016-08-03 19 views
2

Ich sah eine Antwort für diese früher, aber die Antwort, die ich bekam, schien nicht für mich arbeiten. Ich bin ein Anfänger in Javascript, also würde ich wirklich schätzen, wenn jemand erklären würde, was ich falsch mache.Speichern und Wiederherstellen Scroll-Position mit Cookies in Javascript

hierfür Mein Code ist hier:

<script type="text/javascript"> 
     $(document).ready(function() 
     { 
      if ($.cookie("scroll") != null) 
      { 
       $(window).scrollTop($.cookie("scroll")); 
      } 

      $(window).on("scroll", function() 
      { 
       $.cookie("scroll", $(window).scrollTop()); 
      }); 

     }); 
    </script> 

Was ich erreichen wollte wie im Titel gesagt wurde, die Bildlaufposition des Benutzers mit Hilfe von Cookies zu speichern und wenn die Seite aktualisiert wird die Position gehalten wird, . Ich brauche keine Cookies, wenn es anders geht. Vielen Dank im Voraus.

+3

haben Sie sogar versuchen, [googeln es] (https://www.google.lv/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=save%20scroll%20position%20javascript) –

+0

Bitte geben Sie an, was Sie mit "schien nicht zu arbeiten". Wenn der Ort, von dem Sie die Antwort erhalten haben, Stack Overflow ist, stellen Sie einen Link zu dieser Antwort für den Kontext bereit, damit diese Person nicht als Duplikat markiert wird. Abschließend sei spezifisch, was du nicht verstehst. Siehe [fragen] nach weiteren Tipps. –

+2

Ich liebe ältere SO-Posts, bei denen der Top-Kommentar lautet: "Ich werde das nicht beantworten, hast du es überhaupt versucht, es zu googeln?" und der nächste Kommentar ist zwangsläufig "Das ist jetzt das Top-Ergebnis bei Google." [Nicht zu implizieren, dass Sie falsch waren, @MikelisBaltruks, es gibt klare Antworten auf Google und genau diese Seite, nur eine tangential verwandte Beobachtung] – ale10ander

Antwort

0

mit der Wenn Sie jquery Cookie tat umfassen dann sollte alles wie erwartet:

//soln 1 
$(window).on("scroll", function() { 
    $.cookie("tempScrollTop", $(window).scrollTop()); 
}); 
$(function() { 
    if ($.cookie("tempScrollTop")) { 
    $(window).scrollTop($.cookie("tempScrollTop")); 
    alert("loaded postion : " + $.cookie("tempScrollTop")); 
    } 
}); 

WORKING AT: http://output.jsbin.com/nizejuw


Dies ist ein alternative Lösung mit localspeicher Spezifikation von HTML5.

//loading soln 

$(function() { 
    if (localStorage.tempScrollTop) { 
    $(window).scrollTop(localStorage.tempScrollTop); 
    alert("loaded postion : " + localStorage.tempScrollTop); 
    } 
}); 


//saving soln 1 
$(window).on("scroll", function() { 
    localStorage.setItem("tempScrollTop", $(window).scrollTop()); 
}); 

//saving soln 2 
window.onbeforeunload = function() { 
    var tempScrollTop = $(window).scrollTop(); 
    localStorage.setItem("tempScrollTop", tempScrollTop); 
    return "Saved scroll to localstorage!!"; 
}; 
0

document.location.reload(true) speichert die Position und ist die kürzeste Option

1

Sie darunter ein Bibliothek js externen fehlen könnte Code zu verwenden, dass $.cookie. Ich kann Sie versuchen vorschlagen HTML5 Web Storages

$(document).ready(function() { 
    if (localStorage.getItem("scroll") != null) { 
     $(window).scrollTop(localStorage.getItem("scroll")); 
    } 

    $(window).on("scroll", function() { 
     localStorage.setItem("scroll", $(window).scrollTop()); 
    }); 

}); 

FIDDLE

+0

Um das Scrollen zu vermeiden, wenn ein Benutzer die Seite absichtlich geschlossen hat und später wiederkommt Was passiert, wenn Sie stattdessen ['sessionStorage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage) verwenden? – KevBot

Verwandte Themen