Roadster: Ausführung einer Anweisung erzwingen? --> element.scrollTop

Beitrag lesen

Hallo miteinander!

Folgendes: Mit der Anweisung element.scrollTop=0; sollte prinzipiell ein Element, dass auf overflow:scroll; gesetzt ist, dazu gebracht werden, dass die Ansicht an den oberen Rand zurückspringt, falls sie sich nicht schon dort befindet.

Dies funktioniert bei mir jedoch nur dann (und das auch nur bedingt!), wenn ich diese Anweisung an ein "click"-Event koppele, nicht jedoch, wenn sie in der ausführenden Funktion nach einem "animationiteration"-Event oder "animationend"-Event aufgeführt ist. - Und ich frage mich, warum?

Es ist wirklich bizarr!

Wenn ich auf meiner Seite in einem meiner Menüs (denn um die geht es bei dem 'element' hier) herunterscrolle, so dass der obere Rand außerhalb des Element-Rahmens (overflow:hidden;) ist, dann kann ich sogar die komplette Seite im Firefox-Browser NEU LADEN (!!!) und wenn ich das Menü dann wieder öffne, steht es noch genau an der Stelle, an der ich es vor dem Reload verlassen habe, obwohl dazwischen - von dem site-reload mal ganz abgesehen - wenigstens an zwei Stellen im Code die explizite Anweisung element.scrollTop=0; hätte ausgeführt werden müssen!

Und selbst wenn ich element.scrollTop=0; an ein "click"-Event knüpfe, funktioniert es erst beim zweiten Click, nie jedoch beim ersten! Das heißt, obwohl der Button, mit dem ich das Menü aufrufe in seiner ausführenden Funktion diese Anweisung enthält, wird sie beim ersten clicken beharrlich ignoriert, so dass das Menü wieder an genau die Stelle gescrollt angezeigt wird, an der ich es hinterlassen habe...

Also frage ich mich

1. warum zum Teufel der Browser diese Anweisung so konsequent ignoriert (obwohl sie ja grundsätzlich funktioniert, jedoch eben nur nach mehrmaligem clicken...) und

2. wie ich die Ausführung dieses Befehls erzwingen kann, denn dieses Browser-Verhalten ist wirklich extrem nervig und für die Benutzbarkeit der Seite alles andere als förderlich! :(

Für guten Rat bin ich wie immer Dankbar!

Beste Grüße,

Roadster.