Juste pour le fun une solution avec deux images et sans javascript : mettons que tu veuilles montrer la carte d'une région et qu'un cercle rouge vienne montrer où se situe une ville au passage de la souris sur son nom dans la colonne de liens.
1. tu crées une image de la carte que tu places dans la page à sa bonne place.
2. tu crées un gif transparent ou un png du rond rouge.
3. tu associes à chaque item de la liste un span vide placé en position exactement superposée à la carte et que CSS masque par un display:none.
4. un hover sur le a de la liste demande à ce que ce div devienne display:block et soit doté de l'image du rond rouge en background, différemment positionnée selon la ville concernée.
J'ai pas essayé mais ça devrait le faire.
HTML :
<li><a id="ville1">ma ville 1<span></span></a></li>
<li><a id="ville2">ma ville 2<span></span></a></li>
...
CSS :
a span { position / taille / display:none / etc... }
a#ville1:hover span { display:block; background: url('rond-rouge.png') 120px 30px no-repeat; }
...
Tu peux aussi créer plus simplement un span contenant le rond rouge en image incluse et le placer directement en position au bon endroit par CSS. La première solution est un peu mieux puisque le rond rouge n'ayant pas de sens en soi (sans être positionné) il peut être considéré comme "image décorative", ne pas être doté de alt et ne pas apparaître dans certains cas de figure.
Pour rendre la chose plus pertinente tu peux encore "zoomer" la portion de carte et la placer dans le rond rouge. Pour ça soit tu crées autant d'images 'rond-rouge' que de villes, soit, plus subtil mais plus complexe, tu utilises une seule image de ta carte agrandie que tu gères avec la fonction CSS clip.
Bon courage.
Modifié par Arsene (30 Apr 2009 - 09:54)