IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

clignotement de mon menu JavaScript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Par défaut clignotement de mon menu JavaScript
    Bonjour,

    J'ai créé un menu (avec sous menus) en html. Voici à peut près à quoi ça ressemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div>
    <div>TITRE MENU</div>
    <ul><li>Sous Menu 1</li>
    <li>Sous Menu 2</li></ul>
    <div>
    Je cache mes sous menus grâce à la propriété css visibility:hidden.
    Avec du JavaScript je précise que:

    - lorsque je survole ma <div> contenant mon "TITRE MENU", je change la couleur et je fais apparaitre mes sous menus (onMouseOver).
    - lorsque je survole mes sous menus, je change la couleur et je fais en sorte de laisser mes sous menus affichés (onMouseOver).
    - lorsque je retire la souris de ma <div> principale (qui contient mon TITRE MENU et mes sous menus), je remets par défaut (onMouseOut).

    Sous Firefox et IE8 aucun soucis. En revanche sous IE7 et IE6 lorsque je passe la souris sur un menu et ses sous menus ça clignote...
    J'ai essayé de mettre un timeout, rien n'y fait! Quelqu'un aurait il une solution à proposer??

    Merci d'avance!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Salut,

    C'est tout à fait normal...

    Le test de "protection" de la modification dans changeFondBleu() n'est pas correct...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function changeFondBleu(menuG,menuM,menuD){
     
    	if (!(document.getElementById(menuM).style.background=="transparent url(/images/mm-default.jpg) repeat scroll left bottom")) {
     
            document.getElementById(menuM).style.color="#fff";
            document.getElementById(menuG).style.background="url('/images/mg.jpg') bottom left";
            document.getElementById(menuM).style.background="url('/images/mm.jpg') bottom left";
            document.getElementById(menuD).style.background="url('/images/md.jpg') bottom left";
     
        }
    }
    "transparent url(/images/mm-default.jpg) repeat scroll left bottom" <> "url('/images/mm.jpg') bottom left"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Par défaut
    Merci pour votre réponse mais ça ne change rien au problème... J'ai commenté mon mon "if" et le clignotement continue.

    Cette condition me permet juste de ne pas changer la couleur bleue du menu en cours lorsque je fais un onMouseOut dessus (ne fonctionne que pour accueil pour l'instant).

    Le background d'un menu actif est volontairement "images/mm-default.jpg" dans le cas de la div "mm"

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par YoChappu Voir le message
    Merci pour votre réponse mais ça ne change rien au problème... J'ai commenté mon mon "if" et le clignotement continue.

    Cette condition me permet juste de ne pas changer la couleur bleue du menu en cours lorsque je fais un onMouseOut dessus (ne fonctionne que pour accueil pour l'instant).
    C'est bien ce que je dis, ce test est NECESSAIRE
    Mais il n'est pas correct et c'est pour ça que tu as le clignotement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Par défaut
    En quoi n'est il pas correct?

    Je ne sais pas si vous avez vu, j'ai édité mon dernier message en ajoutant le commentaire suivant:

    Le background d'un menu actif est volontairement "images/mm-default.jpg" dans le cas de la div "mm"

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Il n'est JAMAIS vrai car tu compares 2 chaines qui sont différentes.

    Citation Envoyé par devyan Voir le message
    "transparent url(/images/mm-default.jpg) repeat scroll left bottom" <> "url('/images/mm.jpg') bottom left"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Par défaut
    D'ou l'intérêt que je précise que ce contrôle ne me sert qu'à vérifié si je suis actuellement en train de parcourir le menu actif.

    En gros je dis:

    Si je ne suis pas dans le menu actuellement actif (avec le fond "/images/mm-default.jpg"), dans ce cas lorsque je fais un onMouseOver je remet le menu en blanc.

    Prenons le cas ou je parcours justement le menu actif, je rentre dans la condition car mon menu actif aura toujours "/images/mm-default.jpg" comme background et non "/images/mm.jpg". Dans ce cas lorsque je quitte l'élément, je ne change pas sa couleur afin qu'il reste bleu.

    Je précise que seul le bouton accueil est concerné pour le moment.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par YoChappu Voir le message
    D'ou l'intérêt que je précise que ce contrôle ne me sert qu'à vérifié si je suis actuellement en train de parcourir le menu actif.

    En gros je dis:

    Si je ne suis pas dans le menu actuellement actif (avec le fond "/images/mm-default.jpg"), dans ce cas lorsque je fais un onMouseOver je remet le menu en blanc.

    Prenons le cas ou je parcours justement le menu actif, je rentre dans la condition car mon menu actif aura toujours "/images/mm-default.jpg" comme background et non "/images/mm.jpg". Dans ce cas lorsque je quitte l'élément, je ne change pas sa couleur afin qu'il reste bleu.

    Je précise que seul le bouton accueil est concerné pour le moment.

    Le bout de code que tu fournis dit :
    si je n'ai pas couleur de fond = transparent ET image = "/images/mm-default.jpg" ET scroll ET répétée en X et Y à partir du coin bas gauche ALORS je fixe image ="/images/mm.jpg" ET positionnée à partir du coin bas gauche.

    donc tu vas toujours effectuer la modification du background donc tu vas avoir le fond qui clignote à chaque affectation sous IE6 et IE7 et c'est normal.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Par défaut
    J'ai modifié mes contrôles javascript et mis en place le système de coloration du menu courant afin que ça paraisse plus clair pour tout le monde.

    Mais je ne vois pas ce que ça change et ce qu'il faudra que j'écrive comme code pour arrêter le clignotement... Mon contrôle me sert uniquement à ne pas changer le "background" de mon menu actif...

Discussions similaires

  1. plus de javascript aprés requéte ajax pour mon menu
    Par pouktoro dans le forum jQuery
    Réponses: 2
    Dernier message: 23/10/2009, 13h44
  2. Comment ne pas imprimer mon menu, l'entete et le pied de pag
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/03/2006, 09h36
  3. nombreux problèmes sur mon menu de gauche
    Par pp51 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/12/2005, 21h00
  4. [FLASH 8] Mon menu marche puis marche plus...
    Par mixomatoz dans le forum Flash
    Réponses: 1
    Dernier message: 24/11/2005, 10h24
  5. Intégrer un Javascript à mon menu deroulant CSS
    Par Dantahoua dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/08/2005, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo