Zurückscrollen, nachdem Link mit Anker aufgerufen wurde
Nikola
- javascript
Hallo,
ich möchte folegndes realisieren:
Ich habe eine alphabetisch sortierte Übersichtsliste. Man kann über einen Anker zum jeweiligen Buchstaben wechseln. Wenn ich jetzt einen Link auf die Liste setzte inkl. Anker, d.h. z.B. www.meineseite.de/liste.php#123, dann wird die Seite geöffnet und zu Anker #123 gesprungen - so soll das auch sein. Das die Liste ziemlich lang ist, wird der Anfang des Ankers natürlich am oberen rand des Browsers angezeigt. Jetzt möchte ich, das einfach um ein bestimmte Anzahl von Zeilen/Pixeln zurückgescrollt wird.
Das sollte doch mit window.scrollBy(0,50) funktionieren.
Leider klappt das nicht so ganz ... kann mir jemand helfen.
Danke und 1000 Sonnenstrahlen,
Nikola
Hallo Nikola,
... wird der Anfang des Ankers natürlich am oberen rand des Browsers angezeigt. Jetzt möchte ich, das einfach um ein bestimmte Anzahl von Zeilen/Pixeln zurückgescrollt wird.
Das sollte doch mit window.scrollBy(0,50) funktionieren.
Nein, bitte nicht. Das ist ... ähm, Unfug.
Du möchtest, dass der Anker nicht unmittelbar am oberen Seitenrand klebt? Also einen Rand (margin) nach oben (top) hat.
http://de.selfhtml.org/css/eigenschaften/randabstand.htm#margin_top
HTH
Jochen
Hallo,
Nein, bitte nicht. Das ist ... ähm, Unfug.
evtl. nicht so ganz ..
Du möchtest, dass der Anker nicht unmittelbar am oberen Seitenrand klebt? Also einen Rand (margin) nach oben (top) hat.
wenn ich das so mache, dann wird mein layout auseinandergerissen - habe ich schon versucht. Deshalb kam ich auf scrollBy.
Eigentlich soll das Javascript nur 50 Pixel zurück nach oben scrollen ... hab auch schon versucht die aktuelle Scroll-Position zu ermitteln und dieser dann 50 Pixel abzuziehen und dann die Position neu zu setzten
Leider klappt es nicht ...
Hast Du noch eine Idee??
LG, Nikola
Hi,
warum setzt Du den Anker nicht einfach an die Stelle, zu der tatsächlich gesprungen werden soll? Ggfls. gibst Du dem betreffenden Element noch ein padding-top mit.
freundliche Grüße
Ingo
hi,
Hast Du noch eine Idee??
er hatte doch schon eine gute - aber die hast du mit
wenn ich das so mache, dann wird mein layout auseinandergerissen - habe ich schon versucht
abgebügelt. und das auch noch, ohne zu sagen, wo denn das rpboelm dabei überhaupt liegen soll ...
gruß,
wahsaga
hi,
wo denn das rpboelm dabei überhaupt liegen soll ...
^^^^^^^
"wenn sie den nicht kennen, haben sie was verpasst!"
sollte natürlich problem heißen. und ich geh mir jetzt kurz die finger entknoten lassen ...
gruß,
wahsaga
Hallo Nikola,
Eigentlich soll das Javascript nur 50 Pixel zurück nach oben scrollen ... hab auch schon versucht die aktuelle Scroll-Position zu ermitteln und dieser dann 50 Pixel abzuziehen und dann die Position neu zu setzten
Leider klappt es nicht ...
Was klappt denn nicht? Und wie sieht dein javascript im Moment aus?
So aus dem Bauch raus würde ich sagen:
onload="window.scrollBy(0,-50)" u.U. wird aber das onload() zu früh ausgelöst. Also bevor der Browser zum Anker springt. Dann könntest du noch ein: onload="setTimeout('scrollBy(0,-50)',500)"; versuchen.
Das klappt natürlich nur, wenn mit dem Link eine neue Seite geladen wird. Bei Verweisen innerhalb der Seite wird onload() nicht ausgelöst. Vielleicht klappt dann ein onclick="setTimeout('scrollBy(0,-50)',500)"; im Link.
Besonders nutzerfreundlich ist das allerdings nicht. Ich habe gerade angefangen zu lesen, plötzlich zuckt die Seite um 50px nach unten. Ich weiß nicht, ich weiß nicht ....
Grüße,
Jochen
Hallo Nikola,
Das sollte doch mit window.scrollBy(0,50) funktionieren.
Leider klappt das nicht so ganz ... kann mir jemand helfen.
http://molily.de/css-position-fixed#javascript-extern
Grüße,
Roland