Menu Vertical – Prototype & ScriptAculoUs

Voici ma toute première réalisation en matière de menu javascript. Ce menu vertical fonctionne avec Prototype 1.6 et ScriptAculoUs.

Vous pourrez le tester sur la page de démonstration.

Menu horizontal

Si vous avez des questions,n’hésitez pas 😉

Edit : C’est bien un menu vertical et non horizontal, je me suis trompé désolé 🙁

34 commentaires On Menu Vertical – Prototype & ScriptAculoUs

  • Très sympa ton petit menu , il manque de pouvoir fermer lorsqu’on clique une deuxieme fois sur un élément, mais c est simple et efficace 🙂

  • Merci beaucoup. C’ étais voulu 🙂
    Sinon pour ceux qui le souhaite tout de même :
    remplacer la ligne //do nothing
    par Effect.BlindUp($(‘smenu’+s.id.replace(‘a’, »)), {duration:0.5});

    Voilà tout 🙂

  • Je préfère le menu Jquery que j’avais blogué récemment. Mais bon pour une première réalisation c’est bien! 🙂 Au fait, ton menu est vertical mais pas horizontal… 😉

  • eh merde c’est vrai tu as raison c’est un menu vertical 🙂

  • C’est pas grave l’essentiel c’est que ça marche!

  • arf je suis en cours d’utilisation de ce menui mais je trouve qui « lag »
    http://www.cep-lorient.com/portail/index.php

    ici il est en demo …
    Si qqn pouvait me donner un coup de main afin que mon menu soit plus rapide d’affichage qd la page se charge …

    MErci

  • Le menu ne rame pas, il s’affiche plutôt bien.
    Je vous conseille de rajouter une classe à chacun des éléments « dd » de votre menu comme suivant:
    <dd id="smenuX" class="smenu"> ou X est le numéro du menu
    et ajouter dans votre css (menu.css) :
    dd.smenu {
    display: none;
    }
    Quand la page se chargera, le menu sera fermé par défaut. Il sera chargé plus vite.

  • Je reviens vers vous et pourriez vous me donner un exemple ???

    rajouter une classe c’est uniqument modifier le menu.css ?? comme ceci ???

    ou X est le numéro du menu
    et ajouter dans votre css (menu.css) :
    dd.smenu {
    display: none;
    }

    Merci de m’eclairer

    Stef

  • non pas tout à fait, en réalité j’ai poster mon commentaire trop vite et je n’ai pas vu que mon code html avait était interprété.
    Regardé à nouveau le commentaire précédant, vous verrez qu’il faut également modifier le code de la page en rajoutant une propriété class à chaque élément dd du menu.

  • Rebonjour, j’ai teste la modif comme vous le l’avez dit mais la le menu ne se deroule plus !!!

    j’ai bien mis la class=smenu dans les dd mais ensuite je n’ai plus que mes 5 blocs bleus …
    les sous menus n’apparaissent pas …
    Si vous pouviez m’aider …
    Merci …

  • ce n’est pas class=smenu mais class= »smenu » qu’il faut mettre.
    Vérifier que le menu est valide W3C.

  • J’aimerais savoir si c’est possible de garder la derniere position du menu ouverte lorqu’on passe d’une page à l’autre, le menu revient en position standard.
    Que faut-il rajouter ?

    Merci.

  • Il faut ajouter un système basé sur les cookies ou une variable passé dans la page qui indiquerait l’état du menu.
    Je te laisse voir tout ça 😉

  • Bonjour,
    J’aimerai savoir comment on fait pour retirer la barre qui s’affiche en haut du menu ?

  • @fce Hello,
    Il n’y à pas de barre en haut sur mon script.
    Cela dit, j’ai regardé sur ton site et il y à une balise HR qui pourrait ressembler à ce que tu veux enlever….. Essaye de voir…

  • Par fait merci, j’ai une autre question comment pourrait ton faire pour rajouter un sound à chaque passage de la souris?

  • Il faut utiliser soit une applet Java soit du Flash, c’est un peu complexe et c’est surtout inadapté dans une page web non flash.
    Je suis désolé mais je n’ai pas plus d’informations sur ce genre d’opérations… 🙁

  • Ok pas grâve et tu sais comment modifier l’aspect de la balise title?

  • C’est à dire ?
    Tu ne peux pas associer de style à la balise title…
    Tu peux simplement faire un défilement du titre dans le navigateur via Javascript. Pour cela, tu trouveras de l’aide sur Google.

  • Non ta pas compris j’ai ajouter une balise title dans chaque liens du menu et j’aimerai que lorsque l’on passe la souris au lieu de voir le title normale le modifier pour qu’il soit plus stylé.

  • Il y à des choses dans ce genre
    http://trentrichardson.com/examples/csstooltips/
    Sinon regarde tooltip sur Google, tu trouveras sûrement ton bonheur.

  • Bonjour, est il possible de faire défiler le menu « onHover » ?
    j’ai essayé de trouver la liste des « addEvent » sur le net mais je trouve pas 🙁

  • Oui effectivement, il est possible de faire un onHover.
    Le type passé en paramètre de addEvent est « Hover ».

  • le onhover m’interesse aussi .. si qqn a un bout de code je suis preneur ….

  • Hello, First of all, thank you for your great menu creation! Now I have a question about it. Is there a javascript command to open a dt and select a dd on pageload or something liek that?

  • @Bert Je n’ai pas très bien compris ce que tu veux faire ?! Tu peux me parler en français si tu veux ^^

  • Bonjour, Tout d’abord je vous remercie de votre menu de la création! Maintenant, j’ai une question à ce sujet. Existe-t-il un javascript commande pour ouvrir une dt et dd en charge de la sélection d’une page?

  • Hi all,
    i’m using this great script and i need to set a open node.

    I passed to the initMenus the ID of the node i want to open:
    initMenus(activenum) // for example initMenus(2)

    And I’ve edited this part on the JS:

    /*All menu hidden by default except the active*/
    $$(‘.smenu’).each(function(s,index){
    var num = s.id.replace(‘a’, »); //attention, wordpress have corrupted this line, see your code for the correct replace
    if(num != activenum){
    if($(‘smenu’+num).visible()) {
    $(‘smenu’+num).hide();
    }
    }
    });

  • where write you " initMenus(2) " in the js ?

    like this ? addEvent(window, 'load', initMenus(2)); ??

    thanks

  • Hi Charline,
    Yes, you can write it like this at the end of file.
    But you can set a activeMenu variable (to the value '2') directly in your initMenu function and call initMenu without parameters from your addEvent function.
    I hope my explanations are clear.

    Thanks

    • my menu is dynamic, and i want to write :

      " if the id of the menu selected is "active" then open it "

      html : <dt class="smenu" id="a1"><span>Menu 1</span></dt>
      <dd id="smenu1" class="lienActif">

      ajax ?

      if($('smenu'+s.id.replace('a','')).id = 'lienActif') {
      $('smenu'+s.id.replace('a','')).show();
      }

      thank you for your help

  • You can make this with Ajax or simply add a class (or directly a style balise) with display: block;

    C'est comme tu veux 🙂
    Tu parles français ?

  • oui ! mdr…

    bon j'ai enfin trouvé ! en php, si je suis le menu sélectionné
    j'ai un id = à 100
    et dans ajax :

    if(num != 100){ … etc… j'ai repris le code de max quoi

    et ça fonctionne !

    merci !

  • Ok cool Charline.

    Tu pouvais laisser la variable activeNum et la passer en paramètre c'était au choix.
    Bon courage 😉

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.