So laden Sie alle hintergrund-Bilder auf einmal
Habe ich die erste Webseite und es haben einige hintergrund-Bildern, die Ineinander übergehen.
So, das problem ist, dass, wenn die Seite nicht im Cache computer auf den ersten, es dauerte einige Zeit, zum laden der nächsten Hintergrundbild auf überblenden-Effekt.
Irgendwelche Ideen, wie das laden aller Bilder auf einmal?
JSFiddle: https://jsfiddle.net/sawqo6j9/
JS:
var i=0;
var imghead=[
"url(http://www.psdgraphics.com/file/abstract-mosaic-background.png)",
"url(http://www.psdgraphics.com/file/colorful-triangles-background.jpg)",
"url(http://www.mrwallpaper.com/wallpapers/gradient-background.jpg)"
];
function slideimg() {
setTimeout(function () {
jQuery('body').css('background-image', imghead[i]);
i++;
if(i==imghead.length) i=0;
slideimg();
}, 6000);
}
slideimg();
CSS:
html, body {
height: 100%;
}
body {
background: url(http://www.psdgraphics.com/file/abstract-mosaic-background.png) no-repeat center center fixed;
-webkit-background-size: auto 100%;
-moz-background-size: auto 100%;
-o-background-size: auto 100%;
background-size: auto 100%;
-webkit-transition: all 2s ease-in;
-moz-transition: all 2s ease-in;
-o-transition: all 2s ease-in;
-ms-transition: all 2s ease-in;
transition: all 2s ease-in;
margin: 0;
padding: 0;
font-family: Arial;
font-size: 14px;
color: #fff;
margin: 100px;
}
HTML:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<p>There goes page content</p>
</body>
</html>
- Beziehen Sie sich auf die weiße Farbe, die passiert, nachdem das Bild?
- Ja, genau. Aber es werde zeigt nur für die erste Zeit. Wenn alle Bilder geladen sind, ist alles gut.
- Dies liegt daran, zunächst browser macht 3 Aufrufe laden die imgaes von 3 verschiedenen url. Ist es möglich, alle diese 3 Bilder und erstellen Sie ein sprite, dann Durchlaufen Sie?
- Ja, es ist möglich, aber es ist eine gute Idee? Es gibt 6 Bilder, beide sind Größe über 3 MB und die Seite ist responsive - also auf unterschiedliche Weise, hintergrund lädt in verschiedenen Positionen und etc.
- Ich Schreibe mein Ansatz, aber später auf, da hast du eine Spanne von 6 Sekunden konnte Sie laden alle Ihre Bilder separat und nur die anderen auszublenden, bis die Zeit kommt für Sie. Ich glaube, ein solcher Ansatz würde das problem lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die Zwischenspeicherung hintergrund-Bilder, ich nehme in der Regel den Ansatz der Vorspannung Ihnen vom Bildschirm als
<img>
und entfernen Sie die container sind Sie geladen, wenn die Seite vollständig geladen ist :Den
#deposit
element könnte entweder in das markup oder dynamisch Hinzugefügt :Können Sie definieren, Sie in Vorspannung Container in der CSS.
Und fügen Sie Sie in Ihre HTML.
Fiddle
UPDATE: Man könnte hinzufügen, Sie als Bilder und entfernen Sie Sie, sobald Sie geladen werden, über eine
.load()
Funktion.Fiddle