Softscroll zu einem Anker
Steffen Flämig
- javascript
0 Gernot Back0 mario0 wahsaga
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
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
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
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
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