|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Bonjour à tous,
Je développe en ce moment un petit site web. J'ai un menu : c'est une liste <ul></ul>. Chaque élément de menu a un arrière plan dont l'opacité est moyenne : Code :
Code :
Maintenant, j'ai aussi un script en JS qui repère l'adresse de la page courante, compare les href des liens avec cette adresse et, si le lien a la même adresse que la page courante, lui applique un id, qui s'appelle "actif". Or ce que je voudrais, c'est que cet id soit caractérisé par une opacité élevée, comme :hover : Code :
Alors vous me direz "est-ce qu'avec d'autres propriétés ça fonctionne ?" et la réponse est oui. J'ai pu, par exemple, changer la couleur de police, la couleur de l'arrière plan, etc. Autre solution : le script JS crée une classe, par exemple menuselected : Code :
Je pense que le script ne remplace pas la classe par une autre, mais ajoute une 2e classe, ou un id. (Si c'est possible.) Voici donc le script : Code :
Au départ dans mes styles, il y avait aussi du padding, mais le padding de la class et le padding (ou non) de l'id (ou le padding des deux classes) s'ajoutaient, alors ça n'allait pas. Voilà, si vous avez des idées sur toutes ces petites choses... Merci d'avance ! |
||||||||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Bonjour,
Rappel : Les ID doivent être unique Partant de cela il te faut modifier la className par ajout de style spécifique. |
|
|
00
|
|
|
#3 | ||||
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Bonsoir,
L'ID est unique (il n'y a qu'une seule "page courante"). Je crois que le problème vient du fait qu'il y a, pour le même élément, une classe : Code :
Code :
|
||||
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
logiquement cela devrait marcher, à quel moment appelles tu la fonction? |
|
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
En bas de page, comme dans le modèle que j'ai suivi :
Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
dans une URL de ce type index.php?page=accueil, il te faut récupérer
document.location.search, qui te retourneras ?page=accueil, et c'est à partir de cela qu'il te faut faire la recherche dans tes liens. Si l'occurrence est trouvée tu appliques une classe active, sinon tu appliques une classe inactive |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Le script sélectionne très bien, là n'est pas le problème : le problème est dans son action après sélection.
J'envisage une nouvelle solution, inspirée par ce que vous me dites : au lieu d'appliquer un style "par défaut" puis d'appliquer un second style par-dessus le premier, il faudrait un script qui applique tout seul le style, une sorte de structure IF page-courante > style actif ELSE > style inactif Je ne sais pas du tout faire ça : comme je l'ai dit, j'ai simplement récupéré un script et essayé de l'adapter à mon usage. Question corollaire, parce que ça me simplifierait la vie : on ne peut pas créer une pseudo-classe en JavaScript ? Parce que je sais que :active et :current ne correspondent pas à ce que je veux faire, mais si par exemple je pouvais inventer une pseudo-classe :encours, que j'appliquerais à la page active, avec quelque chose comme Code :
document.links[i].pseudoClass = 'encours'; |
|
|
00
|
|
|
#8 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
Je te mets un exemple complet correspondant à ce que je te disais lors de mon dernier message Code :
|
|||
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Bonjour,
Et merci pour ce script ! Je viens de l’essayer, ça semble très bien fonctionner. Je vais maintenant essayer de l’appliquer dans mes propres pages, ce qui risque d'être un peu plus compliqué. Juste à titre indicatif, il y a un petit lapsus*: la classe appelée lien_inactif correspond en fait au lien actif, et lien_actif aux liens inactifs. Petite question*: à quoi sert Code :
Par ailleurs, quand vous dites "côté serveur", vous voulez dire en PHP j’imagine*? Il y a tout un débat là-dessus pour savoir si c’est mieux côté serveur ou côté client, je crois que ça se fait aussi souvent de l’un que de l’autre... Bon, et puis moi je me suis décidé à apprendre réellement le JavaScript, parce que mine de rien ça me manque. Ensuite je pourrai utiliser des jQuery*! Encore merci pour le script, je reviendrai (évidemment) vers vous si j’ai un problème au moment de l’appliquer dans mon site déjà un peu construit. |
||
|
|
00
|
|
|
#10 | ||||||
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
Citation:
Citation:
Citation:
|
||||||
|
|
00
|
|
|
#11 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Citation:
Citation:
Je veux dire, pas pour ça, le jQuery, mais pour des animations graphiques un peu plus développées... |
||
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
il n'empêche, à mon avis, qu'il vaut mieux connaître un minimum le javascript avant d'utiliser, et souvent mal, une bibliothèque comme jQuery.
|
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : avril 2009 Messages : 169 ![]() |
Tout à fait ! Nous sommes parfaitement d'accord ! Et c'est pour ça que je disais que j'avais commencé à apprendre le JavaScript pour pouvoir ensuite accéder à la bibliothèque jQuery.
Ah, j'aurais dû faire des études d'info... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com