Gängiges Problem. Verwenden Sie CSS, um die Steuerelemente standardmäßig auszublenden, und verwenden Sie dann JS beim $(document).ready
, um zu entscheiden, welche Steuerelemente sichtbar gemacht werden sollen. Es wird kein Flimmern geben. Es wird einfach so aussehen, als würden die entsprechenden Teile der Seite progressiv geladen werden.
Sie können JS nicht sicher ausführen, bevor das Dokument bereit ist, und Teile des Dokuments werden sichtbar sein, bevor Sie JS ausführen können. Die einzige Lösung besteht darin, sicherzustellen, dass alle nicht-flimmernden Elemente standardmäßig ausgeblendet sind, und dann nur diejenigen anzuzeigen, die sichtbar sein sollen.
Der einfachste Weg, dies zu tun, besteht darin, allen dynamischen Elementen einfach eine gemeinsame Klasse hinzuzufügen:
und CSS zu verwenden, um sicherzustellen, dass sie alle standardmäßig ausgeblendet sind:
.initiallyHidden {display: none;}
Und dann überschreibt Ihr JavaScript dies, wenn es entscheidet, dass ein Element sichtbar sein soll:
document.getElementById("myControl1").style.display = "block";
3 Stimmen
Kannst du sie nicht standardmäßig auf versteckt setzen und nur diejenigen anzeigen, die du auf
$(document).ready
benötigst?0 Stimmen
Wenn Sie standardmäßig versteckt sagen, beziehen Sie sich darauf, CSS zu verwenden, um sie zu verstecken. Wenn ich das mache, wird jQuery in der Lage sein, sie anzuzeigen und auszublenden?
0 Stimmen
Ja, ich meine mit CSS, und ja, jQuery kann es auch.