Bonjour à tous !
Voici la situation :
J'ai un menu avec 5 items. Tous les items sont blancs par défaut, et quand on passe la souris dessus je change la couleur (1 couleur par item), la graisse, et l'espace entre les lettres. Rien de plus simple avec le CSS!
Le truc, c'est que pour mettre un peu d'animation, je fais appel à un plugin jQuery (il s'agit de textscan ) qui prend le dessus sur le CSS.
Du coup, pour conserver la couleur quand on passe la souris, et aussi quand on est dans la rubrique correspondante à l'item, je fais appel à une fonction que j'ai créée (voir plus bas). Tout fonctionne parfaitement sous Firefox, par contre sous Chrome et Safari le changement de couleur ne fonctionne pas.
J'ajoute aussi que quand on clique sur un item, ça doit appeler une fonction. Là c'est pareil: aucun problème avec FF, et sous Chrome faut cliquer 15 fois pour que ça marche.
Bien sûr la console de Chrome n'affiche aucune erreur... J'ai fait des tests, la fonction est bien appelée, et aucune ligne n'a l'air de le faire planter. Alors pourquoi est-ce que ma couleur de texte ne change pas ???
Voici la fonction en question:
Précision sur le CSS : le texte incriminé est dans une police que j'importe de cette manière:
Je sais pas si ça change quelque chose à mon problème, on sait jamais...
Merci de m'aider !
Modifié par kopros (24 Nov 2011 - 18:56)
Voici la situation :
J'ai un menu avec 5 items. Tous les items sont blancs par défaut, et quand on passe la souris dessus je change la couleur (1 couleur par item), la graisse, et l'espace entre les lettres. Rien de plus simple avec le CSS!
Le truc, c'est que pour mettre un peu d'animation, je fais appel à un plugin jQuery (il s'agit de textscan ) qui prend le dessus sur le CSS.
Du coup, pour conserver la couleur quand on passe la souris, et aussi quand on est dans la rubrique correspondante à l'item, je fais appel à une fonction que j'ai créée (voir plus bas). Tout fonctionne parfaitement sous Firefox, par contre sous Chrome et Safari le changement de couleur ne fonctionne pas.
J'ajoute aussi que quand on clique sur un item, ça doit appeler une fonction. Là c'est pareil: aucun problème avec FF, et sous Chrome faut cliquer 15 fois pour que ça marche.
Bien sûr la console de Chrome n'affiche aucune erreur... J'ai fait des tests, la fonction est bien appelée, et aucune ligne n'a l'air de le faire planter. Alors pourquoi est-ce que ma couleur de texte ne change pas ???
Voici la fonction en question:
function surline(action,id,avt){
switch(id){
case 'menu1':var id2='item1', color1='FFD600', color2='F2F1F0', type='main_menu';break;
case 'menu2':var id2='item2', color1='D06E2C', color2='DDE9EC', type='main_menu';break;
case 'menu3':var id2='item3', color1='ED1C24', color2='F2F1F0', type='main_menu';break;
case 'menu4':var id2='item4', color1='88C540', color2='DDE9EC', type='main_menu';break;
case 'menu5':var id2='item5', color1='A09090', color2='F2F1F0', type='main_menu';break;
default:var id2='item1', color1='ED1C24', color2='F2F1F0', type='sub_menu';break;
}
var obj=document.getElementById(id2);
if (type=='main_menu'){
// Nouvelle couleur de texte
if (action=="allume"){
$("#"+id2).unspanize("anim"); // Ca c'est pour textscan
// Attribution de la couleur de texte
obj.style.color='#'+color1;
// pour bloquer textscan
block_anim_id1=id2;
// changement d'autres styles que la couleur
obj.style.fontWeight='600';
obj.style.letterSpacing='1px';
}
// Remise de la couleur initiale
else if (id2!=block_anim_id2 || (id2==block_anim_id2 && avt==1)){
obj.style.color='#'+color2;
$("#"+id2).spanize("anim",1);
block_anim_id1='';
obj.style.fontWeight='normal';
obj.style.letterSpacing='2px';
}
}
else{
// Autre partie de la fonction pour autre chose qui fonctionne nickel sur tous les navigateurs testés
}
}
Précision sur le CSS : le texte incriminé est dans une police que j'importe de cette manière:
@font-face{
font-weight: normal;
font-style: normal;
font-family: 'GeoSansLight';
src: url('../fonts/GeosansLight.eot?') format('eot'), url('../fonts/GeosansLight.ttf') format('truetype');
}
Je sais pas si ça change quelque chose à mon problème, on sait jamais...
Merci de m'aider !
Modifié par kopros (24 Nov 2011 - 18:56)