Seguro no inventé el método pero igual se me ocurrió
. Tenía unas imágenes muy pesadas que estaban asignadas a un hover (un asunto de "sí o sí"), entonces procedí a crearme una serie de capas de esta forma:
Donde
.precargaimg notiene ningún estilo asignado, por su parte los hijos traen las imágenes como fondo y por lo tanto se precargan sin problemas. El código lo puse inmediatamente después del <body> y funciona de maravilla. Éste es el CSS:
Código css:
Ver original.precargaimg {
}
.precargaimg * {
background-position: -10000px -10000px;
background-repeat: no-repeat;
}
#bcAzul-hover {
background-image: url(../imagenes/bcAzul-hover.gif);
}
#bcGris-hover {
background-image: url(../imagenes/bcGris-hover.gif);
}
#bcVerde-hover {
background-image: url(../imagenes/bcVerde-hover.gif);
}
#bcMagenta-hover {
background-image: url(../imagenes/bcMagenta-hover.gif);
}
#bcCuadro2 {
background-image: url(../imagenes/bcCuadro2.jpg);
}
#bcCuadro3 {
background-image: url(../imagenes/bcCuadro3.jpg);
}
#bcCuadro4 {
background-image: url(../imagenes/bcCuadro4.jpg);
}
#bcCuadro5 {
background-image: url(../imagenes/bcCuadro5.jpg);
}
Esas mismas imágenes estaban asignadas al hover de unas listas; de esta manera al pasar el ratón por encima las imágenes ya habían cargado.
Sí pude notar una cosa: si le doy
display: none a
.precargaimg las imágenes de las capas hijo no se cargan (misterios de la ciencia). También me quedaba la duda de si esta acción rompía o no la semántica, pero al fin y al cabo son unas capas vacías sin peso estructural, pero eso sí, muy útiles y eficientes
.