Carl Karl: Ersatz für window.scrollTo(0,0) um INNERHALB zu scrollen

Hallo allerseits,

folgendes Problem: Ich möchte einerseits mittels des hier geschilderten Tricks Webkit-Scrollbars erzwingen.
Dazu wurde unter anderem festgelegt:

body   {  
position: absolute;  
top: 0;  
left: 0;  
bottom: 0;  
right: 10px;  
overflow-y: scroll;  
overflow-x: hidden;  
}

Andererseits möchte ich aber von Funktionen wie window.scrollTo(x,y) oder window.scrollBy(x,y) Gebrauch machen, was vor obiger Festlegung auch einwandfrei funktionierte. Nun aber nicht mehr, da wohl Window nun die Screengröße hat und nicht mehr gescrollt werden kann.
(Von Hand scrollen geht noch wunderbar, und wie erwünscht mit den Webkit-Scrollbars)

Daher nun meine Frage:
Womit kann ich window.scrollTo(x,y) oder window.scrollBy(x,y) ersetzen, um nun auch bei der obigen Festlegung per Funktion scrollen zu können?

Ich dachte zunächst an document.scrollTo(), aber das funktioniert nicht: "TypeError: Object #<HTMLDocument> has no method 'scrollTo'"

  1. Ich würde an deiner Stelle "window" mit dem Knoten deiner Wahl ersetzen ;).

    Gruß
    Austauschbarer
    T-Rex

    1. Erstmal danke, aber wie finde ich denn den zu scrollenden Knoten heraus?

      Der DOM-Inspector ist mir ein Begriff, ließ mich aber ratlos zurück.

      Was kommt denn überhaupt in Frage, d.h. welche weiteren Objekte unterstützen die Methode scrollTo?
      Ich dachte, document gehöre dazu, da document doch ein Abkömmling von Window sei, oder etwa nicht?

      (Es handelt sich übrigens um ein Greasemonkey/Tampermonkey Script zu einer bestehenden Seite, daher habe ich auf die Gestaltung der Seite selbst keine Einfluss..)

      Ich würde an deiner Stelle "window" mit dem Knoten deiner Wahl ersetzen ;).

      Gruß
      Austauschbarer
      T-Rex

      1. Du musst irgendwie auf den DOM Knoten zugreifen.

        <div id='knoten'></div>

        und dann

        var knoten = document.getElementById("knoten");
        knoten.scrollTo();

        oder eben was vergleichbares.

        Gruß
        ScrollT-
        Rex

        1. Ah, danke!

          Und gibt es dann auch ein scrollBy Pendant?

  2. Hallo!

    Ich möchte einerseits mittels des hier geschilderten Tricks Webkit-Scrollbars erzwingen.

    Scrollbars erzwingen ist einfach, dazu setzt du einfach overflow-y: scroll für das html-Element. Mehr musst du nicht tun. Keine weiteren Hacks, kein absolut positionierter body.

    Der verlinkte Artikel will anscheinend auf einen Effekt hinaus, der weit über das Erzwingen von Scrollbars unter MacOS X Lion und aufwärts hinausgeht.

    Andererseits möchte ich aber von Funktionen wie window.scrollTo(x,y) oder window.scrollBy(x,y) Gebrauch machen, was vor obiger Festlegung auch einwandfrei funktionierte.

    Die sollten auch weiterhin funktionieren, sofern irgendein Trick das normale Scrolling nicht zerstörst.

    Ein beliebiges Element mit overflow-y: auto/scroll lässt sich mittels der Eigenschaft scrollTop programmatisch scrollen.

    Grüße,
    Mathias