Modifier le list-style-Image CSS grace à l'évènement onmouseover

celili40 Messages postés 2 Date d'inscription jeudi 9 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010 - 9 sept. 2010 à 13:51
celili40 Messages postés 2 Date d'inscription jeudi 9 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010 - 10 sept. 2010 à 08:47
J'avoue tout de suite, je n'ai pas encore commencé le cours de javascript et mis à part le livre que j'ai englouti sur la question, je n'ai pas beaucoup de références.

J'ai créé une liste à puces pour mon menu, les puces étant des images, l'ID de mes List Items "tetine". Pour faire court, voila l'extrait de mon code XHTML concernant le menu :





<li id="tetine">[edouard.html Edouard]</li>
<li id="tetine">[arbre.html L'arbre]</li>






Voici l'extrait de mon fichier CSS s'y rattachant :

li
{
list-style-image: url("images/tetine.png");
padding-top: 15px;
margin-left: 30px;
}

J'aimerai remplacerle l'URL du List Style Image de mes puces lors de l'évènement "onmouseover" et bien sur que les puces redeviennent "tetine.png" onmouseout.

J'ai créé un fichier javascript que j'ai trafiqué sans succès toute la matinée et qui donne en ce moment :

document.getElementById("tetine").onmouseover = menu;

function menu()
{
document.getElementById("tetine").style.listStyleImage="url('images/tetineanim2.gif')";
}


J'imagine que ma question est très basique, voire insultante, mais si quelqu'un pouvait me répondre, ca serait super!
Merci.

3 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
9 sept. 2010 à 17:22
Salut aussi !
alors, déjà deux vois le même id dans une page, c'est pas bien !!!!
ce qui est bien c'est des ids différents.
une solution: le CSS et un tout petit peu de javascript:

<style>
/**
* Classe par défaut des li
*/
li
{
list-style-image: url("images/tetine.png");
padding-top: 15px;
margin-left: 30px;
} 
/**
* Classe utilisée lors du survol
*/
.LIOver{	
   list-style-image: url("images/tetineanim2.gif");
}
</style>

et ensuite, rien de bien transcendant:
  <li id="tetine" onmouseover="this.className='LIOver';" onmouseout="this.className=''">[edouard.html Edouard]</li>
  <li id="tetine2" onmouseover="this.className='LIOver';" onmouseout="this.className=''">[arbre.html L'arbre]</li>


sur le mouseover on change la classe de l'élément li et sur le mouseout, on vire la classe.
c'est pas plus simple comme ça ??
[o-_-o]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
9 sept. 2010 à 22:03
Bonjour,
le CSS suffit, si on excepte IE6
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<head>
<title>CSS sur LI</title>
<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
.tetine li {
  list-style-image : url("images/tetine.png");
  padding-top : 15px;
  margin-left : 30px;
}
.tetine li:hover {
  list-style-image : url("images/tetineanim2.gif");
}
</style>
</head>



  
    <li class="tetine">[edouard.html Edouard]</li>
    <li class="tetine">[arbre.html L'arbre]</li>
  



</html>

Nota : on met class ="tetine" et non deux éléments avec la même ID.

;O)
0
celili40 Messages postés 2 Date d'inscription jeudi 9 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010
10 sept. 2010 à 08:47
Hello!
Effectivement je m'en suis rendue compte après pour les ID : à force de bidouiller mon code j'ai fait n'importe quoi !!! Pour le reste vous avez 1000 fois raison aussi, c'est bien plus simple de jouer sur le CSS que sur le Javascript! Merci beaucoup à tous les deux, je vous confirme que les tétines bougent enfin
0
Rejoignez-nous