beatovich: scrollTop onscroll Unterschiede im Browser

Beitrag lesen

hallo

Hallo beatovich,

Ich kann auf der verlinkten Seite aber nichts entdecken, das deinem Beispiel nur annähernd entspricht.

Mein Beispiel ist eine Frage, keine spezifische Anwendung. Aber klar dürfte damit sein, dass ich keine Sprungziele im Auge habe, sondern Ereignisse/Aktionen die sich nach dem Scrollverhalten richten, was dann wohl doch durchaus sinnvoll sein kann.

Was machen denn die Browser bei:

el.onscroll=function(){console.log("handler wird ausgeführt")};

Sie reagieren natürlich darauf, entspricht ja auch meinem Beispielcode(im Thread) hier und der funktioniert, wie schon gesagt, in beiden Browsern.

Gruss
Henry

Ich kann nur sagen, dass document.body.scrollTop in IE bis in neuere Versionen nicht existiert und du wirst wohl eine property Abfrage machen müssen oder eben deine hier verwendete Variante verwenden müssen. Oder um's anders zu sagen, Browser verhalten sich wohl verschieden in der Frage ob sie den overflow auf der body oder dem html (documentElement) anwenden.

Eine andere Frage:

// warum reicht hier eigentlich nicht: window.onscroll = scrollcntrl();

scrollcntl() würde sofort evaluiert und ganz einfach der zur Zeit der Evaluation ermittelte Wert gespeichert.

Deshalb besser:

window.addEventListener("scroll", scrollcntrl);

Bei

window.onscroll=function(){scrollcntrl()};

wird eine anonyme Funktion zugewiesen, und im Eventfall erst ausgeführt. Nachteil natürlich dass derart ein bestehender scrollevent überschrieben wird.