Javascript - Scrollen bis zum Seitenende



  • Hallo, ich möchte auf meiner Seite per Javascript nach unten scrollen lase, aber er soll auch aufhören, wenn er angekommen ist. Ich weiß, dass das Scrollen mit scrollBy und scrollTo geht, aber wie bekomme ich heraus, wann er angekommen ist? Beispielcode wäre nicht übel. Danke.



  • if (window.pageYOffset) y = window.pageYOffset;
    else if (document.body && document.body.scrollTop) y=document.body.scrollTop;
    

    http://www.selfhtml.net/javascript/objekte/window.htm#scroll_by



  • Danke für die Antwort, jedoch funktioniert bei mir noch folgender Code nicht:

    var y=0;
    function scrolldown()
    {
      var max;
      if (window.pageYOffset)
        max=window.pageYOffset; 
      else if (document.body && document.body.scrollTop)
        max=document.body.scrollTop;
      window.scrollBy(0,5);
      y+=5;
      if (y<max)
        setTimeout("scrolldown()",10);
      else
        y=0;
    }
    

    Es funktioniert zumindest erst beim 3. mal.



  • Oder dieser Code hier:

    var y=0;
    function scrolldown()
    {
      var max;
      if (window.pageYOffset)
        max=window.pageYOffset; 
      else if (document.body && document.body.scrollTop)
        max=document.body.scrollTop;
      else
      {
        y=max;
        document.location.href="#GB";
      }
      if (y<max)
      {
        window.scrollBy(0,5);
        y+=5;
        setTimeout("scrolldown()",10);
      }
      else
        y=0;
    }
    

    Funktioniert erst, wenn ein paar Pixel vorgescrollt wird, ansinsten springt er gleich zur Marke "GB".

    Aber der hier funktioniert wunderbar, k.a. wieso:

    var y=0;
    function scrolldown()
    {
      var max;
      if (window.pageYOffset)
        max=window.pageYOffset; 
      else if (document.body && document.body.scrollTop)
        max=document.body.scrollTop;
      else
      {
        y+=5;
        window.scrollBy(0,5);
        setTimeout("scrolldown()",10);
      }
      if (y<max)
      {
        window.scrollBy(0,5);
        y+=5;
        setTimeout("scrolldown()",10);
      }
      else
        y=0;
    }
    


  • Mein Code dient nicht zum Ermitteln der max. Scroll-Position, sondern zum Ermitteln der aktuellen Position.
    Ich hatte mir das so gedacht, dass du einfach solange nach unten scrollen lässt, bis sich die aktuelle Position nicht mehr ändert 😉



  • Hmmm, aber ich hab irgendwo mal gesehen, dass man das auch abfragen kann, ich weiß nur nicht mehr wo *fg* Ich möchte meinen es war hier im Forum, oder hier im Forum war nur ein Link dorthin, egal, ich werd die Suche nicht aufgeben... Außerdem funzt es ja soweit: Mein Gästebuch (www.cpp-club.net)


Anmelden zum Antworten