JavaScript wird geladen, während die Seite geladen wird
Dies ist ein wenig schwer zu erklären, Also werde ich mein bestes versuchen,
So, während eine HTML-Seite geladen wird, möchte ich dort einen coolen laden Bildschirm Los ist. Wenn es fertig geladen ist, möchte ich den lade-Bildschirm zu löschen und das HTML-Dokument angezeigt werden.
Im Grunde, möchte ich Dieses:
CSS:
/* Absolute Center CSS Spinner */
.loading {
position: fixed;
z-index: 999;
height: 2em;
width: 2em;
overflow: show;
margin: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
/* Transparent Overlay */
.loading:before {
content: '';
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.3);
}
/* :not(:required) hides these rules from IE9 and below */
.loading:not(:required) {
/* hide "loading..." text */
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.loading:not(:required):after {
content: '';
display: block;
font-size: 10px;
width: 1em;
height: 1em;
margin-top: -0.5em;
-webkit-animation: spinner 1500ms infinite linear;
-moz-animation: spinner 1500ms infinite linear;
-ms-animation: spinner 1500ms infinite linear;
-o-animation: spinner 1500ms infinite linear;
animation: spinner 1500ms infinite linear;
border-radius: 0.5em;
-webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
}
/* Animation */
@-webkit-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-o-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
HTML:
<div class="loading">Loading…</div>
passiert zu sein, während die Seite geladen. wenn die Seite geladen wird, wird gelöscht, und der rest des HTML-Dokuments wird angezeigt. (Ich mache ein credits-system und während die credits laden, was ich gerade wirklich brauchen, es zu sagen, es ist das laden, die Leute Klagen, Sie können nicht auf alles und ich muss sagen Sie alle, es ist nur laden)
Möchte ich bleiben Sie Weg von Ajax so viel wie möglich, da ich möchte Javascript lernen.
InformationsquelleAutor der Frage unknownA | 2014-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Am Anfang Ihres be-script, nur machen Sie Ihre
sichtbar durch css [
display:block;
] und stellen Sie den rest der Seite durch css unsichtbar[display:none;
].Sobald das laden fertig ist, machen nur die be-unsichtbar und die Seite wieder sichtbar mit der gleichen Technik. Sie können das Dokument.getElementById (), um die divs, die Sie möchten, um die Anzeige zu ändern.
Edit: Hier ist, was würde es irgendwie so Aussehen. Wenn der Körper finhishes laden, ruft die javascript-Funktion, die Anzeige zu ändern-Werte der verschiedenen Elemente. Standardmäßig ist Ihr Stil wäre, um die nicht sichtbaren Seite der Belastung sichtbar.
InformationsquelleAutor der Antwort IronWilliamCash
Bauen weiter auf den ajax-Teil, die Sie möglicherweise oder möglicherweise nicht verwenden (aus den Kommentaren)
eine einfache Möglichkeit zum laden einer anderen Seite, und ersetzen Sie es mit Ihre aktuelle ist:
InformationsquelleAutor der Antwort Rebirth
Ich würde vorschlagen, hinzufügen-Klasse
no-js
zu Ihrem html-Code zu verschachteln von CSS-Selektoren unter dem Motto:und wenn Sie fertig sind laden Sie Ihr Guthaben-code entfernen:
Dies wird verstecken Sie Ihre Ladesymbol da es keine
no-js
- Klasse in html-es bedeutet, dass Sie bereits geladen Ihre Kredit-codeInformationsquelleAutor der Antwort Ihab Khattab
Wenn Sie in Ihrer Website haben Sie ajax-Aufrufe laden einige Daten, und dies ist der Grund, die Seite lädt langsam, ist die beste Lösung, die ich fand, ist mit
https://jsfiddle.net/44t5a8zm/ - hier können Sie hinzufügen, einige ajax-Aufrufe und es testen.
InformationsquelleAutor der Antwort Vladimir Vladimirov
Diese Methode verwendet die
WindowOrWorkerGlobalScope.setInterval
(https://developer.mozilla.org/en-US/doc)Methode zu verfolgen, die bereit Mitgliedstaaten des Dokuments & sehen, ob die
<body>
element vorhanden ist.Diese pre-loading screen wurde von Lapys @ https://github.com/LapysDev
InformationsquelleAutor der Antwort Lapys