Rechercher : dans
Par :

Affichage d'un div au survol d'un lien

Dernière réponse le 20 nov 2009 à 22:42:16 pijaku, le 18 aoû 2008 à 12:22:05 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « affichage d'un div au survol d'un lien » dans :
Une popup d'information au survol sans Javascript ni CSS Voir Parfois, il peut être utile d'afficher des informations supplémentaire au survol du curseur sur une zone de l'écran, par exemple "Cliquez pour agrandir" sur une image, un descriptif sur une abbréviation ou des détails sur un lien. On trouve...
Enlever la bordure sur une image dans un lien en HTML/CSS VoirVous avez fait une image cliquable en mettant une balise IMG au sein d'un lien et le navigateur vous affiche un cadre ou plus exactement une bordure autour de l'image. Il existe deux façons de supprimer cette bordure...

1

Groarh, le 18 aoû 2008 à 13:45:41
  • +2

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 ;)

Répondre à Groarh

5

ansofette, le 9 fév 2009 à 15:01:13

Salut!!
l'explication que tu as donné m'aide un peu beaucoup dans mes recherches mais la chose que je n'arrive pas c'est que je voudrais que l'image différente qui apparait a chaque survol se trouve au même endroit.Or avec cette methode elle se situe les une en dessous des autres!!
y aurai t-il une astuce que je n'ai pas compris?
je te remercies
ansofette

Répondre à ansofette

2

pijaku, le 18 aoû 2008 à 14:52:35

Superbe!!! Génial!!!
Merci beaucoup.

Répondre à pijaku

3

css mania, le 27 oct 2008 à 11:08:47

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/...

Répondre à css mania

4

Groarh, le 27 oct 2008 à 14:40:10

@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... :)

Répondre à Groarh

6

Alphatrion, le 3 aoû 2009 à 23:03:55

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.

Répondre à Alphatrion

7

 pyrogoto, le 20 nov 2009 à 22:42:16

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"


++

Répondre à pyrogoto