VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Affichage d'un div au survol d'un lien [Résolu]

pijaku 4444Messages postés 15 mai 2008Date d'inscription 24 avril 2012Dernière intervention - Dernière réponse le 16 août 2011 à 15:49
Bonjour,
Soit un menu css avec sous et sous-sous-menu du style :
extrait html :
<div id="menu">
<ul class="niveau1">
<li class="sousmenu"><a href="menu 1">xxxxxx</span></a>
<ul class="niveau2">
<li><a href="Sous menu 1.1">yyy</a></li>
</ul>
</li>
<li class="sousmenu"><a href="menu 2">xxxxxxx</a>
<ul class="niveau2">
<li class="sousmenu"><a href="Sous menu 2.1">yyyy</a>
<ul class="niveau3">
<li><a href="Sous sous menu 2.1.1">zzzzz</a></li>
</ul>
</li>
<li class="sousmenu"><a href="Sous menu 2.2">yyyyy</a>
<ul class="niveau3">
<li><a href="Sous sous menu 2.2.1">zzzzzzz</a></li>
<li><a href="Sous sous menu 2.2.2">zzzzzzz</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
extrait css :
div#menu a {
color:#000000
}
div#menu li:hover {
background: #EDD
}
div#menu li a {
text-decoration: none;
padding: 4px 0 4px 8px;
display:block; border-left:
8px solid #BBB; width:84px
}
div#menu li a:hover {
border-left-color: red;
}
}
div#menu ul ul li a:hover {
border-left-color: #00FF00;
}
Ca fonctionne bien mais je voudrais qu'au survol de mes liens, une image (différente à chaque lien...) apparaisse ailleurs dans ma page. L'un de vous pourrait-il éclairer ma lanterne?
D'avance merci pour toute suggestion css, javascript... (le javascript ne dérange pas car l'apparition d'images est purement décorative et ne gène en rien la navigation.).
Merci
Lire la suite 

Affichage d'un div au survol d'un lien »

15 réponses
Réponse
+15
moins plus
Salut,
"Soit un menu css avec sous et sous-sous-menu... " intoxiqué aux problèmes de maths ? xD
Je propose une solution javascript. Supposons que les div contenant les images soient masquées au chargement de la page ; au survol du lien, la div devient visible, puis lorsque le curseur n'est plus sur le lien, la div redevient invisible.
Voici un exemple :
<html>
<head>
<title>test pijaku</title>
<script type="text/javascript"><!--
	div = {
		show: function(elem) {
			document.getElementById(elem).style.visibility = 'visible';
		},
		hide: function(elem) {
			document.getElementById(elem).style.visibility = 'hidden';
		}
	}
--></script>
<style type="text/css"><!--
	div {visibility:hidden}
--></style>
</head>

<body>
<ul>
	<li onMouseOver="div.show('div1')" onMouseOut="div.hide('div1')">lien 1</li>
	<li onMouseOver="div.show('div2')" onMouseOut="div.hide('div2')">lien 2</li>
	<li onMouseOver="div.show('div3')" onMouseOut="div.hide('div3')">lien 3</li>
</ul>
<div id="div1">
	<img src="" alt="image 1" />
</div>
<div id="div2">
	<img src="" alt="image 2" />
</div>
<div id="div3">
	<img src="" alt="image 3" />
</div>
</body>
</html>

Bon courage !
Pour des explications sur mon code, n'hésite pas à demander ;)
choohy - 22 mars 2011 à 21:09
juste merci.
signé: un pov débutant
Capulet - 27 avril 2011 à 12:32
ET si on souhaite le même procédé, mais cette fois avec une div qui apparait quand on clique sur le lien ?

que doit on changer ?

Il me semble que ça implique de dire dans le code que la div précédente doit se fermer... et là je sèche... comment mettre ça dans le css et html ?

merci !!!! ^^
dino - 16 août 2011 à 15:49
merci beaucoup ça faisait deux jour que je cherchais à faire ce truc.
Ajouter un commentaire
Réponse
+4
moins plus
Et supposons que le javascript soit désactivé ???

Vois donc ce lien il t'en apprendra beaucoup ....

css menu et texte en survol

http://css.alsacreations.com/...
Ajouter un commentaire
Réponse
+2
moins plus
Bonjour, je me permets de poser une question dans ce topic car j'utilise la fonction javascript donnée par Groarh ici mais j'ai un problème :
j'ai donc un div qui s'affiche au survol du lien et est caché ensuite. Le seul problème est que lors du chargement de la page, il est d'ores et déjà affiché et ce n'est qu'après avoir passé la souris sur le lien que le div se cache.
Comment faire pour qu'il ne s'affiche pas avant le survol du lien ?

merci de m'aider, j'ai pas réussi à trouver une solution qui s'intègre sur mon début de code.
Ajouter un commentaire
Réponse
+0
moins plus
Superbe!!! Génial!!!
Merci beaucoup.
Ajouter un commentaire
Réponse
+0
moins plus
@css mania : tu comptes t'en sortir avec les pseudo-classes ? Là, il s'agit de faire apparaître un autre élément, et puisque tu as l'air de bien connaître le css tu dois savoir, je pense, que le css 2.1 ne permet pas de faire ça.

Ensuite, j'ai dit que je proposais une solution javascript, et cette solution a convenu à pikaju.
J'admets que j'aurais pu proposer une solution avec des gestionnaires d'évènements, mais c'est toujours plus long à expliquer.

Enfin, le topic est résolu depuis un mois et demi. J'ai vu pire en matière de déterrage de sujet, mais bon quand même... :)
Ajouter un commentaire
Réponse
+0
moins plus
desolé du deterage
mais je voulais quand meme remercier Groarh
ta solution fonction nickel chez moi

j'ai juste modifié un truc dans ton script
dans la deuxieme partie, je met ".display = 'none';" au lieu de ".visibility = 'hidden';"
comme sa le div disparait totalement quand on en a pas besoin


et pour Alphatrion
si tu n'a pas trouvé
il faut que tu indique dans le css, sur la class de ton div "display:none" ou "visibility:hidden"


++
Ajouter un commentaire
Réponse
+0
moins plus
Je déterre le sujet mais vous savez comment superposer les div? Pour éviter qu'elles soient les unes sous les autres?

Merci
JFB - 24 sept. 2010 à 09:59
La réponse est ici dans ce tutoriel videohttp://www.grafikart.fr/tutoriels/positionner-css-83
Ajouter un commentaire
Ce document intitulé « affichage d'un div au survol d'un lien » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?