11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous...

Mon petit problème : j'ai une page HTML, associée à une page ".js", qui contient deux séries de liens, l'une sur des noms, l'autre sur des photos. En cliquant sur l'un ou l'autre de ces liens (le nom ou la photo de la pesonne), je déclenche une fonction Javascript qui affiche un petit texte, contenu dans une variable Javascript.
Tout va presque bien : je peux, par Javascript, modifier les attributs des liens utilisés (couleur, bordure, opacité/filtre des photos, etc.) mais je n'ai pas trouvé la combine pour passer les attributs "hover" (a:hover ou a img hover) qui sont mis en place au chargement de la page, par les <div> contenant les liens.

Je subodore qu'il doit y avoir moyen de le faire, mais comment ?

S'il faut remettre à jour la <div> (par innerHTML, par exemple), quelle propriété de cette <div> contient les informations "hover" ?

Merci d'avance aux conaisseurs et spécialistes !
bonsoir,

sans etre spécialiste , il me semble que via js il serait plus logique de traiter l'évènement/attribut onmouseover que de tenter d'acceder a une pseudo-classe ?

Cordialement
GC
Paps a écrit :
je peux, par Javascript, modifier les attributs des liens utilisés (couleur, bordure, opacité/filtre des photos, etc.)

Est-ce qu'il ne serait pas plus simple de manipuler les classes des éléments en JavaScript (element.className), et de déterminer tous les styles dans le CSS? C'est en général une bonne pratique.

Paps a écrit :
passer les attributs "hover" (a:hover ou a img hover) qui sont mis en place au chargement de la page, par les <div> contenant les liens

Toutes mes excuses mais cette partie de phrase ne veut strictement rien dire.
Il va falloir expliquer à nouveau. Smiley cligne
Hello,

Je plussoie Florent et le meilleure moyen à mon sens est ici de faire appel à CSS.

Il n'y a pas moyen de modifier en Javascript la pseudo-classe :hover d'un élément. Soit tu créé tes propres méthodes onmouseover/onmouseout pour simuler un :hover, soit tu utilise CSS, qui après tout est fait pour ça.

L'idée est donc dans ton CSS de créer toutes les classes dont tu a besoin, par exemple :

.class1 {
background-color:red;
color:yellow;
}
.class1:hover {
background-color:lime;
color:blue;
font-weight:bold
}

(tu es aussi prié de faire quelque chose qui arrache moins les yeux que cet exemple Smiley smile )

Puis dans ton Javascript, au lieu de changer les propriétés CSS, tu change juste le nom de la classe de ton élément pour la remplacer par "class1"
Merci à vous tous,

il semble donc que ce soit la solution "class" et CSS la meilleure.
Je ne suis pas chez moi et n'ai pas ma doc à portée de main, donc je reviendrai sur le sujet... un peu plus tard !

Pour Florent : oui, je me doutais que ma phrase était complètement biscornue. Navré !