11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai trouvé ce tuto qui m'a permis de réaliser un menu simple :
Vraiment merci pour ce tuto !
http://www.alsacreations.com/tuto/lire/574-Creer-des-menus-simples-en-CSS.html

j'aimerais maintenant y rajouter de l'ajax afin d'avoir des sous menu et qui s'affiche au click, mais comment faire svp?

Pour le moment j'ai sa :
donc l'item 5 n'est pas afficher et quand on clique dessus il s'affiche, mais il ne disparait plus ?
et aussi si j'ai une page dessous le menu, il ne s'affiche pas dessus il décale tout l'image, comment faire svp?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd">
<html lang="fr">
    <script type="text/javascript" src="http://script.aculo.us/prototype.js"></script>
    <script type="text/javascript" src="http://script.aculo.us/scriptaculous.js"></script>
    <head>
        <title>Construction de menus simples en XHTML/CSS: menu horizontal</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css"><!--
            /*********************************/
            /* Menu horizontal (items flottants) */
            /*********************************/
            #nav {
                list-style: none ;
                margin: 0 ;
                padding: 0 ;
                overflow: hidden ;	/* Création du contexte de formatage */
            }
            #nav li {
                float: left ;
                width: 150px ;
                border: 1px solid #600 ;
                margin-right: 1px ;
                color: #fff ;
                background: #c00 ;
            }
            #nav li a {
                display: block ;
                background: #c00 ;
                color: #fff ;
                font: 1em "Trebuchet MS",Arial,sans-serif ;
                line-height: 1em ;
                padding: 4px 0 ;
                text-align: center ;
                text-decoration: none ;
            }
            #nav li a:hover, #nav li a:focus, #nav li a:active {
                background: #900 ;
                text-decoration: underline ;
            }
            
            --></style>
        <!--[if lt IE 7]>
        <style type="text/css">
			#nav {						/* Contexte de formatage pour IE6 */
				overflow: visible ;
				height: 1% ;
				}
			</style>
			<![endif]-->
    </head>
    <body>

        <h1>Menu horizontal</h1>
        <ul id="nav">
            <li><a href="#" title="aller à la section 1">item1</a></li>
            <li><a href="#" title="aller à la section 2">item2</a></li>
            <li><a href="#" title="aller à la section 3">item3</a></li>
            <li><a href="#" title="aller à la section 4">item4</a></li>

            <li><a href="#" title="aller à la section 5" onclick="$('sous_nav').appear(); return false;">item5</a>

                <ul id="sous_nav" style="display:none;" >
                    <li><a href="#" title="aller à la section 1">item1</a></li>
                    <li><a href="#" title="aller à la section 2">item2</a></li>
                    <li><a href="#" title="aller à la section 3">item3</a></li>
                    <li><a href="#" title="aller à la section 4">item4</a></li>

                    <li><a href="#" title="aller à la section 5">item5</a></li>
                </ul>


            </li>
        </ul>
        <p><a href="/tuto/lire/574-Creer-des-menus-simples-en-CSS.html" title="">retour au tutoriel</a></p>
    </body>
</html>


merci d'avance
Modifié par 6l20 (29 Jul 2009 - 11:36)
Bonjour,

*Oubli d'ouvertue de la balise code, c'est corrigé Smiley cligne
**Javascript pas Ajax Smiley cligne
***Déplacement du sujet dans la section javascript : les soucis rencontrès ne concernent pas le tutoriel "menu css".

Le menu Superfish pourrait te convenir (et semble être de bien meilleure facture que ce que tu as tenté de faire ici), cela demande un minimum de connaissances du langage javascript, ou l'envie de prendre le temps d'apprendre...
Pour l'ouverture/fermeture du menu, faire une recherche sur la gestion d'évènements devrait pouvoir te fournir des réponses.(ici par exemple pour comprendre le principe)
Pour le décallage du contenu lors de l'ouverture du menu, faire une petite révision sur le positionnement, en commençant ici par exemple Smiley smile

Cdt,
Sylvain
Modifié par 6l20 (29 Jul 2009 - 12:09)
merci de ton aide, j'ai utilisé la script que tu m'a proposé, mai now, je viens de me rendre compte que tout mes anciens script ne marche plus car j'utiliser prototype
et donc la, je sias plus quoi faire :'(


je dois tout refaire :'(
Mika2008 a écrit :
merci de ton aide, j'ai utilisé la script que tu m'a proposé, mai now, je viens de me rendre compte que tout mes anciens script ne marche plus car j'utiliser prototype
et donc la, je sias plus quoi faire :'(
je dois tout refaire :'(

Bonjour,

Tu n'es sans doute pas obligé de "tout refaire"... Smiley cligne
Il doit probablement s'agir d'un conflit entre les librairies utilisées (certainement sur l'appel de l'alias "$"...)
Faire une recherche sur ce site ou sur le web, le sujet y est largement traité ( Mot clé : "jQuery.noConflict()" ou "conflit de librairies js" par exemple Smiley cligne )
D'une manière générale, lorsque l'on ne maitrise pas bien un langage (et notamment js) et les diverses librairies qui lui "rajoutent des fonctionnalités", il vaut mieux se contenter de n'en utiliser qu'une seule Smiley cligne

Il doit très certainement exister quelques menus déroulants qui fonctionne via prototype, as-tu fait une recherche ?

Bon courage,
Cdt,
Sylvain
Modifié par 6l20 (30 Jul 2009 - 14:03)
merci de ta réponse, j'ai trouvé une technique sur le net pour faire marché, les deux librairie, mes script prototype et le menu en jquery marche.

en fait avec prototype j'ai fais qu'une chose qui existe peut étre avce jqery, mais faut que j'apprenne à utiliser jquery, car je ne connais que scriptoculous pour le moment, comme tu le vois je connais un peux le javascript, mais je ne le maitrise pas encore
C'est parfait alors Smiley cligne
Si tu considères ce sujet comme [résolu] merci de l'indiquer dans le titre de ton sujet en éditant ton premier post Smiley cligne

@+