Aller au contenu

surligner le menu courrant en JS


alexs

Sujets conseillés

Bonjour,

Je suis en train de faire un petit site avec un frameset de 2 colonnes.

Mes menus qui sont dans le frame de gauche changent le contenu dans celui de droite.

le site en developpement ici

J'ai developpé dans le <head> 3 petites fonctions JS qui devraient gerer le changement du lien courant afin que l'on sache dans quelle page on se trouve:

<script language="JavaScript">
function linkon(name) {
if (name != null) {
getElementById(name).class='current';
}
}
function linkoff(name) {
if (name != null) {
getElementById(name).class='nocurrent';
}
}
curlink = 'linkabout';

function cur(name) {
if (curlink != null) linkoff(curlink);
curlink = name;
linkon(name);
}
</script>

puis mes menus dans le <body>:

<p><a href="about.html" target="mainFrame"  id="linkabout" onClick="cur('linkabout')" >About Artsa</a><br>
<a href="event.html" target="mainFrame" id="linkevent" onClick="cur('linkevent')">Our Event</a><br>
<a href="contact.html" target="mainFrame" id="linkcontact" onClick="cur('linkcontact')">Contact Us</a></p>

<p><a href="contact.html" target="mainFrame" class="current">current</a><br>
<a href="contact.html" target="mainFrame" class="nocurrent">nocurrent</a></p>

(J'ai mis les menus current et nocurrent pour illustrer ce que font les 2 classes du même nom)

Evidemment ca ne marche pas et je ne parvient pas à savoir pourquoi...

Est ce que quelqu'un voit ou est le bug? :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, alors, pour repondre a ton probleme, 2 questions :

- pourquoi les frames ?

- pourquoi le javascript ?

Pour repondre a la premiere question , suit ce lien

Pour repondre a la deuxieme, voici une solution pour faire tout ce que tu veux en 40 lignes en quelques lignes CSS-XHTML.

VOici le html:

page blablabla: <body id="pageBlablabla">

page blabla: <body id="pageBlabla">

 <div id="menu">
<ul>
<li><a href="blablabla.php" id="blablabla" title="" accesskey=""><span>blablabla</span></a></li>
<li><a href="blabla.php" id="blabla" title=""><span>blabla</span></a></li>
</ul>
</div>

Et la css

body#pageBlablabla a#blablabla, body#pageBlablaa#blabla, (...) {

color:#88030A;

(...)

}

Voilou

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Bonjour et merci pour tes conseils, :)

Malheureusement le frame est une contrainte de mon clients (meme si je ne l'approuve pas particulierement je dois m'y plier) car il tient a ce que son menu ne "saute" pas au chargement d'une nouvelle page (le menu lui ne doit pas être rechargé)... :(

Si il y a avait une solution css qui respectait cette contrainte je m'y mettrais avec plaisir mais je n'en ai pas trouvé...

inks.ch par exmemple est un site qui gere tres bien cela avec le JS

Toutefois ses menus sont des images tandis que les miens sont de simple lien et je dois dire que je ne connais pas asser le JS pour changer son code...

bref je suis un peu perdue la...

Modifié par alexs
Lien vers le commentaire
Partager sur d’autres sites

Tu pourrais me montrer des exemples de menus en CSS qui sautent, parce que si c'est bien fait c'est en bien fait, que les images sont pas enormes, la css est mise en cache, puis les images, ça va meme plus vite qu'avec une frame.

Lien vers le commentaire
Partager sur d’autres sites

théoriquement ca pourrait sauter puisque le menu est rechargé avec le reste de la page, et mon client tiens a ce que la plus pourrie des connection n'afecte pas son menu... c'est pour ca que j'utilise les frame, et j'espere bien que c'est la derniere fois.

si toutefois tu as une idée de comment réparer ce code JS... :rolleyes:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...