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 :

Lien Déroulant ?


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut Lien Déroulant ?
    Bonsoir à tous
    (Je suis en train de réaliser un site web en css et html)
    J'ai beaucoup de calque ( au moins 15 dans une page )

    J'aimerais que lors que le clic sur un lien il y un calque qui descend vers le bas et bien entendu lorsque je reclic sur le lien il disparait.

    J'espère que vous m'avez compris
    Je vous remercie d'avance


    A bientôt
    Images attachées Images attachées  

  2. #2
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    Bonjour,

    quand tu dis calque, ca correspond à quelle balise HTML ?
    ensuite, c'est assez simple de les faire apparaitre/disparaitre lors d'un click (on passe sur l'effet d'affichage).
    Il faut capturer l'evenement du click : et afficher/masquer le calque 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('calque2').style.display='nonr'/'block';
    Montre nous deja un bout de code

  3. #3
    Membre expérimenté
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Par défaut
    Bonjour loubiak67 et Bienvenu sur les forums developpez.net !

    Ce genre d'animations est classique en javascript, voici ce que ça peut donner :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <html>
    <head>
    	<script type="text/javascript">
                    function showHideContent(num) {
                            contentDom=document.getElementById("layer"+num+"-content");
                            arrowDom=document.getElementById("layer"+num+"-arrow");
                            if(contentDom.style.display=="none") {
                                    contentDom.style.display=""
                                    arrowDom.innerHTML="⇑";
                            } else {
                                    contentDom.style.display="none"
                                    arrowDom.innerHTML="⇓";
                            }
                    }
            </script>
    	<style>
                    .layer {
                            cursor: pointer;
                            margin: 1em;
                            padding: 0.2em;
                            font-weight: bold;
                            text-transform: uppercase;
                            border: 1px black solid;
                    }
                    .layer span {
                            width: 20px;
                            display: inline-block;
                            text-align: center;
                    }
            </style>
    </head>
    <body> 
    <div class="layer" onclick="showHideContent(1)"><span id="layer1-arrow"></span> Layer 1</div>
    <div id="layer1-content" style="display:none">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</div>
    <div class="layer" onclick="showHideContent(2)"><span id="layer2-arrow"></span> Layer 2</div>
    <div id="layer2-content" style="display:none">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</div>
    </body>
    </html>

    N'hésite pas à poser tes questions

    Bon week-end,
    Thomas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonsoir
    Merci de votre réponse
    Au sujet du code je n'ai rien par rapport a ce que je demande je ne sais pas comment m'y prendre
    Peut être un exemple de site
    http://www.destress.be ( prendre le deuxième lien en bas "L'origine du massage assis")

    J'aimerais ce type de déroulement
    Merci pour vos réponses
    A bientôt

  5. #5
    Membre expérimenté
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Par défaut
    Bonsoir loubiak67 !

    As-tu essayé le code que je t'ai donné ?

    Bon courage,
    Thomas.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonsoir
    Merci de votre réponse
    Je vais essayer votre code
    Je vous tiens au courant
    Merci
    A bientôt

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonjour
    C'est presque ce que je voulais
    Cet exemple la c'est exactement ce que j'aimerai faire
    http://www.destress.be ( prendre le deuxième lien en bas "L'origine du massage assis")

    Merci

  8. #8
    Membre expérimenté
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Par défaut
    Bonjour !

    J'ai bine compris
    Mais c'est quoi la différence pour toi ?

    Bon après-midi,
    Thomas.

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonjour
    en faite par rapport au site de l'exemple précédent si on clic sur le deuxième lien et que le premier est déjà ouvert il ( le lien 1) se referme automatiquement pour afficher le deuxième liens j'espère que vous m'avez compris

    Par rapport aux code que vous m'avez donné au niveau de la longueur peut on la diminuer ?

    Merci

  10. #10
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    Tu peux modifier le comportement pour qu'il fasse ce que tu veux.
    Tu peux modifier le css pour que ca ressemble à ce que tu veux.

    Mais Thomas est deja bien gentil de te pondre le code en entier, faut y mettre un peu du tien aussi !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonjour
    Pour répondre à vos propos je me mets depuis 5 cinq jours en faisant des test
    je n'y arrive pas c'est compliqué je fais des recherches sur le net depuis 5 jours je n'y arrive pas alors je ne vous permets pas de dire "faut y mettre un peu du tien aussi ! "

    Je fais ce que je peux
    Dans ces cas la étant donné que je dois m'y mettre je vais peut être m'adresser à un autre forum comme ça sa ne vous posera pas de problème.
    Aurevoir

  12. #12
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    Ne boude pas !

    Tu ne trouveras pas meilleur forum...

    Je dis juste qu'en regardant ce que t'a donné Thomas, tu peux y arriver tout seul.
    J'ajoute juste un peu de javascript au code de Thomas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <html>
    <head>
    	<script type="text/javascript">
    		function showHideContent(num) {
    			contentDom=document.getElementById("layer"+num+"-content");
    			arrowDom=document.getElementById("layer"+num+"-arrow");
    			if(contentDom.style.display=="none") {
    				contentDom.style.display=""
    				arrowDom.innerHTML="⇑";
    			} else {
    				contentDom.style.display="none"
    				arrowDom.innerHTML="⇓";
    			}
     
    			//on cache les autres
    			var nb_content=3;
    			for(i=1;i<=nb_content;i++) {
    			 contentDom=document.getElementById("layer"+i+"-content");
    			 arrowDom=document.getElementById("layer"+i+"-arrow");
    			 if (i!=num && contentDom.style.display!="none") {
    			   contentDom.style.display="none"
    			   arrowDom.innerHTML="⇓";
    			 }
    			}
    		}
    	</script>
    	<style>
    		.layer {
    			cursor: pointer;
    			margin: 1em;
    			padding: 0.2em;
    			font-weight: bold;
    			text-transform: uppercase;
    			border: 1px black solid;
    		}
    		.layer span {
    			width: 20px;
    			display: inline-block;
    			text-align: center;
    		}
    	</style>
    </head>
    <body> 
    <div class="layer" onclick="showHideContent(1)"><span id="layer1-arrow">⇓</span> Layer 1</div>
    <div id="layer1-content" style="display:none">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</div>
    <div class="layer" onclick="showHideContent(2)"><span id="layer2-arrow">⇓</span> Layer 2</div>
    <div id="layer2-content" style="display:none">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</div>
    <div class="layer" onclick="showHideContent(3)"><span id="layer3-arrow">⇓</span> Layer 3</div>
    <div id="layer3-content" style="display:none">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</div>
    </body>
    </html>
    Par rapport aux code que vous m'avez donné au niveau de la longueur peut on la diminuer ?
    quelle longueur ?
    si c'est pour les DIV "layer", ajoute ceci au CSS :
    et à partir de ça, tu peux faire pleins de choses un peu différentes

  13. #13
    Membre expérimenté
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Par défaut
    Bonsoir loubiak67 et sebhm !

    T'as réponse est très bien sebhm, mais je n'aurais pas forcément fait comme ça ! J'aurais plutôt refermer le layer qui est actuellement ouvert, au lieu de tous. Ainsi il n'y a pas de doublon de code et tu n'as pas besoin de préciser combien tu as de layer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    currentLayer=0;
    function onClickLayer(num) {
    	// On ouvre ou on ferme le menu clické
    	showHideContent(num);
    	// Si le layer ouvert était celui sur lequel on a clické, il n'y a plus de layer ouvert
    	if(currentLayer==num) {
    		currentLayer=0;
    	// Sinon il y a un layer ouvert
    	} else {
    		// S'il y a un layer d'ouvert
    		if(currentLayer!=0) {
    			showHideContent(currentLayer);
    		}
    		// On indique le nouveau layer ouvert
    		currentLayer=num;
    	}
    }
    function showHideContent(num, action) {
    	contentDom=document.getElementById("layer"+num+"-content");
    	arrowDom=document.getElementById("layer"+num+"-arrow");
    	// Si le layer est fermé ou l'ouvre
    	if(contentDom.style.display=="none") {
    		contentDom.style.display=""
    		arrowDom.innerHTML="⇑";
    	// Si le layer est ouvert on le ferme
    	} else {
    		contentDom.style.display="none"
    		arrowDom.innerHTML="⇓";
    	}
    }
    Tu peux voir une démonstration sur cette page


    Pour loubiak67, sebhm a raison ! Il faut apprendre le javascript (et le CSS) car on ne sera pas toujours là pour t'aider. Ainsi la fonction que je t'ai donné faisait pratiquement tout, il te suffisait de faire quelques modifications.
    Donc j'espère que :
    1. T'as essayé de modifier le javascirpt que je t'avais donné
    2. T'as lu et essayé de comprendre la fonction. Comme tu peux le voir certaines parties sont commentées pour t'aider, et si tu ne compreds pas comment ça marche on est partant pour te l'expliquer


    Allé bonne nuit à vous 2,
    Thomas.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonjour
    Merci de vos réponses
    Excusez moi de ma réponse tardive après une bonne bronchite et rhinopharyngite je suis à nouveau d'attaque j'ai bien pris vos conseille mais j'ai encore quelques soucis j'aimerais en fait que sur la même ligne il y en deux barre
    Je ne sais pas comment faire
    Pouvez vous m'aider?
    Je vous remercie d'avance

  15. #15
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut sebhm, Thoams et bienvenu loubiak67,

    j'ai pas compris l'idée des deux barres.
    les codes que t'ont donnée généreusement de Thoams et sebhm font apparaitre et disparaitre le contenu.
    ils ont l'avantage d'être simple mais si tu souhaites faire un affichage coulissant tu peux trouver un exemple avec code ici que tu pourrais adapter si tu te sent suffisamment aguérit.

    bon courage.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 13
    Par défaut
    Bonsoir
    Merci de votre réponse
    Effectivement le code que Thoams et sebhm mon beaucoup aidé avec quelque modification que je remercie de tout cœur .
    Par rapport aux deux barres (ou plus) c'est en fait que j'ai beaucoup de contenu et je ne veux pas que les utilisateurs de mon futur site internet soient obligés de chercher l'info tout en bas de ma page la je coince vraiment pour résoudre le problème.

    Je vous remercie de votre aide
    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/07/2006, 14h52
  2. PB lien sur menu déroulant en HTML
    Par usull dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2006, 15h47
  3. liens dans une liste déroulante
    Par JulienCEA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/03/2006, 13h02
  4. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 18h43

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