2016-07-25 11 views
0

Ich habe ein einfaches Snippet, um einen "festen Header" mit JS und CSS Transformationen zu erstellen. Leistung ist großartig auf modernen Browsern, aber es springt auf IE 10 & 11.IE10 + 11: onscroll & transform verzögerte Leistung

Ich bin mir nicht sicher, ob es IE Scroll-Ereignis, das langsam ist oder die Stiländerung.

Gibt es einen Workaround, um die Leistung zu erhöhen?

oder muss ich einen anderen Weg gehen? (position:fixed) - ich würde wirklich den festen Pfad der Position hinunter gehen, da translateY Lösung mit Tabellenheadern auch gut arbeitet.

Versuchen Sie es aus here.

Antwort

0

Das Ereignis scroll wird zu oft ausgelöst und dies kann ein Grund für die Leistungsverzögerung sein, die Sie im IE festgestellt haben.

Ich würde vorschlagen, debounce, throttle oder implementieren Sie Ihre eigene Lösung mit Timeouts zu steuern, wie oft Sie eine Funktion im Laufe der Zeit ausgeführt werden.

Lesen Sie the article für weitere Details.

+0

Vielen Dank für den Vorschlag, Drosseln oder Entprellen scheint in diesem Fall keinen Unterschied zu machen. Ich habe den Codepen sowohl mit Gas- als auch mit Entprellfunktion aktualisiert. – Facius

+0

@Facius Es stellt sich heraus, dass Sie 'position: fixed' verwenden müssen. Übrigens, es benötigt keine JS und mehr performant. –

+0

Danke, ich weiß, dass das eine mögliche Lösung für einen "einfachen sticky header" ist. Aber es funktioniert nicht gut, wenn Sie einen sticky-Header auf einer dynamischen Tabelle haben müssen (die Breite der Spalten wird geschraubt). Das Beispiel, das ich zur Verfügung gestellt habe, ist eine extrem vereinfachte Version, die echte Lösung ist viel größer und sehr flexibel. – Facius