Je suis en train de développer un site web. J'ai créé un menu inclus dans les balises <header>. Celui-ci est composé de différents boutons qui permettent de naviguer de page en page. Ce menu est contenu dans menu.php
Ce menu sera présent sur chacune des pages, je l'inclus via la fonction include de php. Cependant, je dois envoyer en paramètre à menu.php un id qui correspond au bouton ayant permis d'arriver sur la page courante. Après avoir identifié ce bouton, l'objectif est de le changer de couleur (c'est en quelque sorte un témoin visuel qui indique à l'utilisateur où il se situe. (exemple ci-dessous))
Ces boutons sont en réalité des images. J'en ai des marrons et des blancs. En blanc, cela indique que je me trouve sur la page correspondante OU que je suis en train de survoler le bouton (code correspondant ci-dessous).
$("#trophee").hover(
function () {
$(this).attr('src','img/trophee-hover.png');
},
function () {
$(this).attr('src','img/trophee.png');
}
);
J'inclus mon menu puis j'appelle la fonction selection_onglet
Question 1 : selection_onglet est une fonction PHP, qui écrit un code javascript différent en fonction selon l'id. C'est une façon hyper-tordu de faire les choses. Mais pour répondre à ta question, ce script sera appelé quand le menu sera chargé donc pas de souci.
Question 2 : j'ai répondu ci-dessus, avoir du script un peu partout dans ta page, ça rend le tout complétement ingérable
Question 3 : vu que tu insère ton script en fin de body, il est possible que le l'événement 'ready' ai déjà été déclenché ce qui explique que ça ne fonctionne pas
Quesiton 4 : si tu mets le script en fin de body - ce qui est une bonne pratique - pas de problème effectivement.
Maintenant, voilà deux mauvaises nouvelles :
vide le cache de ton navigateur, et recharge ta page. tu verras que l'effet de survol n'est pas instantané car il faut d'abord que l'image soit chargée (en local c'est furtif, mais ça ne l'est pas pour un site en ligne). Une solution serait de préchargée toutes les images : une vraie usine à gaz.
t'as pas besoin de javascript pour faire un menu au survol. ça se fait très bien en CSS : https://openclassrooms.com/courses/bien-utiliser-les-sprites-css
Dans le cas d'un menu, la pratique la plus courante consiste à attribuer avec PHP une class à l'élément HTML qui représente le menu actif. Comme ça tu peux savoir quel élément représenté différemment aussi bien dans ton CSS que dans ton JS.
Ah mais oui ! Merci beaucoup je vais mettre tout cela en application ,
Bon weekend
La volonté de gagner ne signifie rien sans la volonté de se préparer
Avis sur mon menu dynamique
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.