http://jsfiddle.net/x7Lj1c92/
Explication: tu as ton div conteneur, avec position: relative pour pouvoir positionner les images avec position: absolute relativement au conteneur.
Puis sur le selecteur :hover de tes images, on les agrandit.
On a là 2 problèmes:
1. Les images étant positionnées de manière absolues, elles sont toutes au même endroit: on met des classes pour les positionner. Ici vu qu'il y a que 4 images on peut mettre deux classes sur la même image, l'une spécifiant si elle est à gauche/droite et l'autre si elle est en haut/bas.
<img class="top left" ...></img>
<img class="top right" ...></img>
<img class="bot left" ...></img>
<img class="bot right" ...></img>
#zoom img.bot {
top: 200px;
} #zoom img.right {
left: 400px;
}
2. Les images agrandies sont cachées par les autres images qui sont devant. Pour régler ça, on met par défaut z-index: 0 sur chaque image, et on met z-index: 1 sur l'image qui a le hover.
#zoom img {
z-index: 0;
} #zoom img:hover {
z-index: 1;
}
3. Les images du bas dépassent en bas et celles de droite dépassent à droite de la zone. Du coup il faut décaler les images du bas en haut et les images de droite à gauche quand elles sont on-hover
#zoom img.right:hover {
margin-left: -200px;
} #zoom img.bot:hover {
margin-top: -100px;
}
Note: les classes .left et .top sont en fait inutiles
Ps: désolé pour l'image en exemple pourrie, c'est la première que j'ai trouvée avec une taille adéquate
Message édité le 11 février 2015 à 23:56:56 par angivare