Réponse originale
J'en ai eu besoin et après quelques recherches, j'ai trouvé ceci ( jQuery nécessaire) :
D'abord, juste après le <body>
tag ajouter ceci :
<div id="loading">
<img id="loading-image" src="path/to/ajax-loader.gif" alt="Loading..." />
</div>
Ajoutez ensuite la classe de style pour le div et l'image à votre CSS :
#loading {
position: fixed;
display: block;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-align: center;
opacity: 0.7;
background-color: #fff;
z-index: 99;
}
#loading-image {
position: absolute;
top: 100px;
left: 240px;
z-index: 100;
}
Ensuite, ajoutez ce javascript à votre page (de préférence à la fin de votre page, avant votre fermeture </body>
bien sûr) :
<script>
$(window).load(function() {
$('#loading').hide();
});
</script>
Enfin, ajustez la position de l'image de chargement et de l'élément background-color
de la division de chargement avec la classe de style.
C'est ça, ça devrait bien marcher. Mais bien sûr, vous devriez avoir un ajax-loader.gif
quelque part ou utiliser l'url base64 pour les images src
valeur. Freebies aquí . (Clic droit > Enregistrer l'image sous...)
Mise à jour
Pour jQuery 3.0 et plus, vous pouvez utiliser :
<script>
$(window).on('load', function () {
$('#loading').hide();
})
</script>
Mise à jour
La réponse originale date de jQuery et d'avant l'ère du flexbox. Vous pouvez utiliser de nombreuses bibliothèques et cadres de gestion de vues comme Angular, React et Vue.js. Et pour CSS, vous avez l'option flexbox. Voici une alternative CSS :
#loading {
position: fixed;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
top: 0;
left: 0;
opacity: 0.7;
background-color: #fff;
z-index: 99;
}
#loading-image {
z-index: 100;
}