Steffen Flämig: Softscroll zu einem Anker

Hi,

ich baue an einer Seite auf der hin und wieder zu einem Anker gesprungen
werden soll. Die Seite kann u.U. recht lang werden und für manche
Nutzer könnte es etwas gewöhnungsbedürftig werden, diese Sprünge nach zu
vollziehen.

Jetzt dachte ich mir, dass Problem könnte man mindern, wenn der Sprung
in einer von Auge verfolgbaren Geschwindigkeit abläuft.

Hat so etwas schon einmal jemand gemacht bzw. hat jemand eine Idee?

Vielleicht den Anker nicht dorthin setzten, wo man eigentlich
hinspringen möchte, sondern in ein separates <DIV>, das man dann, von
einer Zeitschleife gesteuert, an die gewünschte Stelle verschiebt?

Gruß

Steffen

  1. Hallo Steffen,

    Hat so etwas schon einmal jemand gemacht bzw. hat jemand eine Idee?

    Vielleicht den Anker nicht dorthin setzten, wo man eigentlich
    hinspringen möchte, sondern in ein separates <DIV>, das man dann, von
    einer Zeitschleife gesteuert, an die gewünschte Stelle verschiebt?

    Nein, willst du diese DIV-Elemente etwa alle absolut positionieren? Die einzelnen Anker-Div-Bereiche rutschen da ja alle wie wild übereinander und ohne Javascript sollte man die Seite doch auch nutzen können.

    Du könntest aber den Links, die auf einen internen Seitenanker verweisen, über den Eventhandler "onclick" eine Funktion verpassen, die den normalen Sprung über return false verhindert, den gegenwärtigen scrollTop-Wert der Seite mit dem aufgrund möglicher Fenstergrößenänderungen ebenfalls dynamisch immer wieder aktuell auszulesenden scrollTop-Wert des Ankerziels vergleicht und ersteren in einem Intervall Stück für Stück an letzteren annähert, bis das Ankerziel schließlich (abgebremst) erreicht ist.

    Gruß Gernot

    1. Hallo nochmal,

      mit dem aufgrund möglicher Fenstergrößenänderungen ebenfalls dynamisch immer wieder aktuell auszulesenden scrollTop-Wert des Ankerziels vergleicht

      Blödsinn ich meine natürlich nicht den "scrollTop-Wert des Ankerziels" sondern den über alle seine offsetParents aufaddierten absoluten offsetTop-Wert des Ankerziels auf der Seite. Der ist dann mit dem gegenwärtigen scrollTop-Wert der Seite zu vergleichen und den scrollTop-Wert der Seite kannst du dann an diesen absoluten offsetTop-Wert des Ankerziels Stück für Stück in einem Intervall annähern.

      Gruß Gernot

  2. Hallo,

    Für jQuery gibt es eine Erweiterung, die Softscrolling für
    einzelne oder alle Anker bereitstellt. (Ich hatte eben das
    auch gestern probiert; aber nich hinbekommen..)

    http://interface.eyecon.ro/

    Ist allerdings ziemlich aufgedunsen. Aber du kannst dir
    ja rausgucken wie's gemacht wird, oder die entsprechende
    Funktion kopieren.

    G!
    mario

  3. hi,

    Jetzt dachte ich mir, dass Problem könnte man mindern, wenn der Sprung
    in einer von Auge verfolgbaren Geschwindigkeit abläuft.

    Hat so etwas schon einmal jemand gemacht bzw. hat jemand eine Idee?

    http://www.kryogenix.org/code/browser/smoothscroll/
    http://www.sitepoint.com/article/scroll-smoothly-javascript/3

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }