Bonjour à tous.
À la vue de mon sujet (assez récurrent sur le forum et le net) je précise qu'avant de poster je suis allé faire un tour ici:
http://www.alsacreations.com/astuce/lire/28-styles-lien-page-en-cours.html
http://www.fastclemmy.com/index.php?rubrique=javascript
et j'en passe... mais je n'ai rien pu adapter à ma situation.
J'ai une fonction en javascript qui récupère chaque changement d'url et qui attribut une classe css d'animation à une div précise comme ceci:
Bref jusqu'ici ça marche l'animation contenu dans la div"animHome" joue correctement la classe d'animation "homeAnimStart" dès qu'on est sur "home"
Toutefois mon but est de faire en sorte qu'avec une ligne quasi identique à celle ci:
"document.getElementById('animHome').className ='homeAnimStart';"
je puisse cibler une classe dans une classe css afin de changer la couleur du lien de la page active.
Mon css au niveau de mon menu se présente ainsi
Par exemple avec ma fonction énoncé plus haut si je suis sur la page "home" alors mon lien "home" (qui se trouve là dedans: .header .nav ul li) se colore et reste en rouge comme avec l'état "hover":
Jusqu'à que l'on clic sur un autre lien du menu.
J'ai pu comprendre que mon souhait serait faisable uniquement en Js donc j'ai testé avec une ligne de ce type (je suis novice en JS):
document.getElementByClassName('header .nav ul li a').className ='header courant';
Mais ça ne marche pas
Quelqu'un a t-il une piste?
Merci d'avance
Modifié par xavierk (14 Mar 2013 - 20:42)
À la vue de mon sujet (assez récurrent sur le forum et le net) je précise qu'avant de poster je suis allé faire un tour ici:
http://www.alsacreations.com/astuce/lire/28-styles-lien-page-en-cours.html
http://www.fastclemmy.com/index.php?rubrique=javascript
et j'en passe... mais je n'ai rien pu adapter à ma situation.

J'ai une fonction en javascript qui récupère chaque changement d'url et qui attribut une classe css d'animation à une div précise comme ceci:
/* FONCTION HASCHANGE */
function locationHashChanged() {
if (location.hash === "#/home") {
document.getElementById('animHome').className ='homeAnimStart';
/*document.getElementByClassName('header .nav ul li a').className ='header courant';*/
}
}
window.onhashchange = locationHashChanged;
Bref jusqu'ici ça marche l'animation contenu dans la div"animHome" joue correctement la classe d'animation "homeAnimStart" dès qu'on est sur "home"

Toutefois mon but est de faire en sorte qu'avec une ligne quasi identique à celle ci:
"document.getElementById('animHome').className ='homeAnimStart';"
je puisse cibler une classe dans une classe css afin de changer la couleur du lien de la page active.
Mon css au niveau de mon menu se présente ainsi
.header .nav ul li {
font-size: 20px;
text-rendering: bold;
text-align: center;
text-transform: uppercase;
white-space: nowrap;
display: block;
list-style: none outside none;
float: left;
}
.header .nav ul li a { /*état par défaut*/
cursor: pointer;
display: block;
margin: 0;
padding: 0 20px 0 0;
text-align: center;
color: #fff;
/*
transition-duration: 0.25s, 0.25s;
transition-property: color, background;
transition-timing-function: linear, ease-in;
*/
}
.header .nav ul li a:hover { /*état survolé*/
color: #ffcc00;
outline: 0 none;
text-decoration: none;
}
Par exemple avec ma fonction énoncé plus haut si je suis sur la page "home" alors mon lien "home" (qui se trouve là dedans: .header .nav ul li) se colore et reste en rouge comme avec l'état "hover":
.header courant {
color: #EF3D42;
outline: 0 none;
text-decoration: none;
}
Jusqu'à que l'on clic sur un autre lien du menu.
J'ai pu comprendre que mon souhait serait faisable uniquement en Js donc j'ai testé avec une ligne de ce type (je suis novice en JS):
document.getElementByClassName('header .nav ul li a').className ='header courant';
Mais ça ne marche pas
Quelqu'un a t-il une piste?
Merci d'avance
Modifié par xavierk (14 Mar 2013 - 20:42)