Nikola: Zurückscrollen, nachdem Link mit Anker aufgerufen wurde

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

  1. 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

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. 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

      1. 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

      2. 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

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. 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

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      3. 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

        --
        Heute schon gescribbelt?
        Scribbleboard
  2. 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