Bonjour,
Je viens vous demander de l'aide pour un problème de présentation (background et couleur de texte), lié à Ajax
J'ai une page avec un containeur qui contient 5 div pour simuler un système de navigation, qui, en fait, permet d'injecter un fragment de texte dans le cadre situé en dessous.
Les 5 div servent de boutons : on clique sur une div, ce qui affiche le texte correspondant en dessous.
Au chargement de la page, il y a un effet hover en CSS qui fonctionne correctement : en survolant une des 5 divs, son background et sa couleur de texte changent.
Ensuite si on clique sur une div, elle change de couleur (background et texte) pour montrer que c'est la sélection courante. Je suis alors obligé d'indiquer par code que les autres div ne changent pas de couleur (car sinon, en cliquant sur une div, puis une autre, toutes les divs cliquées auraient alors changé de couleur ... alors qu'il n'y a, bien sûr, qu'une seule sélection).
Le problème, c'est qu'une fois que j'ai changé les styles (background et color) des divs via JavaScript, l'effet hover ne fonctionne plus : au survol les divs ne changent plus de couleur !
J'ai essayé de surcharger l'effet hover CSS par le même effet hover en JavaScript dans ma fonction (ci-dessous), mais ça ne fonctionne pas.
Est-ce que quelqu'un connaîtrait une solution ?
code (appel de fonction pour une des div), permettant de changer la couleur de la div cliquée et de réaffecter aux autres div leur couleur de départ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function actif(id) { switch (id) { case 'cadre_orange': document.getElementById(id).style.color='D8D8D8'; document.getElementById(id).style.backgroundColor='#FFCC00'; var cadre_r = document.getElementById("cadre_realisations").getElementsByTagName("div"); for (var i=0;i<cadre_r.length;i++) { if(cadre_r[i].id != id) { cadre_r[i].style.color = '#FFCC00'; cadre_r[i].style.backgroundColor = '#D8D8D8'; } } break; ....
Partager