Rolf B: scrollIntoView() geht mit Firefox/IE, aber nicht mit Chrome

Beitrag lesen

Hallo dedlfix,

ich habe mal einen Button oben auf eine Seite gesetzt, in Reaktion auf click funktioniert scrollIntoView.

Was auch geht, ist ein Verschieben in den nächsten Makrotask (Wasn das?)

setTimeout(function () {
   document.getElementById("foo").scrollIntoView();
}, 0);

Das bewirkt, dass der scrollIntoView-Aufruf nicht im gleichen Umlauf der Eventqueue ausgeführt wird, sondern erst im nächsten (oder noch später, je nach Inhalt der Queue).

Ein Mikrotask (z.B. Promise.resolve().then() reicht nicht. Offenbar unterdrückt der Browser während des Events, das den Refresh behandelt, Seitenpositionierungen. Meine Annahme wäre, dass man damit Ruckeln vermeiden will.

Rolf

--
sumpsi - posui - clusi