Qui no ha tingut problemes intentant que el lloc no es veiés mentre es carregava el contingut? Això mateix va passar en la meva última web. El disseny posseïa una gran quantitat d’imatges en cada secció, amb fotos impossible d’optimitzar per la seva naturalesa, el que provoca un efecte poc elegant en cada canvi de pàgina: el disseny es barrejava fins que les imatges es dignaven a descarregar-se. ¿La solució? Entre moltes possibilitats vaig decidir crear un carregador que tapés tot el lloc fins estigués preparat per a desfilar pels ulls dels meus visitants.
A la xarxa vaig veure molts snippets, o codis, que podien solucionar; però la gran majoria desactualitzats. Per això mateix vaig decidir programar un sistema modern que comparteixo perquè qualsevol pugui usar-lo.
Codi o snippet
És molt important que l’HTML i CSS de l’Carregador sigui el primer que vegi l’usuari , fins i tot abans que l’arxiu CSS amb els teus estils arribin a processar. Per això hauràs incloure-ho en cru, ia més on comenci body. Al ejempo et deixo una maquetació on es cobreix tot el visible, afegeix un fons blanc i d’altra banda centra un spin (petit cercle que dóna voltes).
Ara que esperar quan sigui necessari. El següent codi elimina el loading quan:
El DOM aquesta llest (HTML).
S’ha descarregat totes les imatges.
Aquesta presenti el HTML de el carregador (representat amb la classe loading).
Presta especial atenció a aquesta línia.
Indica el retard, en milisegons, a l’hora d’esborrar el carregador quan tot estigui descarregat. I init () serà l’encarregat d’activar la lògica.
complet i optimitzat
Perquè puguis usar-lo directament he deixat l’exemple amb el codi javascript minimitzat (llevant comentaris i espais perquè ocupi menys).