Problème slideToggle
Résolu/Fermé
hugo_d
Messages postés
87
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
21 décembre 2013
-
28 nov. 2010 à 22:03
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 - 1 déc. 2010 à 13:27
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 - 1 déc. 2010 à 13:27
5 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
28 nov. 2010 à 22:58
28 nov. 2010 à 22:58
Salut.
Il suffit de masquer l'élément déjà affiché.
Perso, je stockerais le contenu correspondant à chaque vignette dans un <div>.
Tous ces <div> seraient placés dans un <div> principale.
Par exemple :
Ainsi, il te suffira de masquer tous les éléments du div#contenus
Il suffit de masquer l'élément déjà affiché.
Perso, je stockerais le contenu correspondant à chaque vignette dans un <div>.
Tous ces <div> seraient placés dans un <div> principale.
Par exemple :
<div id="contenus"> <div id="contenu_vignette1">...</div> <div id="contenu_vignette2">...</div> <div id="contenu_vignette3">...</div> <div id="contenu_vignette4">...</div> </div>
Ainsi, il te suffira de masquer tous les éléments du div#contenus
hugo_d
Messages postés
87
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
21 décembre 2013
29 nov. 2010 à 13:26
29 nov. 2010 à 13:26
Pour ce qui est de l'organisation des Div, j'ai bien procédé comme tu dis.
Je vais tenter d'expliquer mon problème à l'aide de numéros et d'images ce sera surement plus simple (les images suives juste en dessous):
si je clic sur une première miniature (1) mon contenu (1) va apparaitre.
Et si maintenant je clique sur ma miniature (2) je vais avoir mon contenu (2) qui va s'ouvrir mais en dessous du contenu (1)
Je suis donc obligé de recliquer sur ma miniature (1) pour masquer mon contenu (1) et laisser la palce à mon contenu (2)
Exemple en images :
https://www.casimages.com/i/101129010950885796.jpg.html
https://www.casimages.com/i/101129011158893236.jpg.html
Ici ca va étant donné que je n'ai que 2 miniatures, mais si j'en ai 10 le visiteur devra à chaque fois retrouver la miniature qu'il a ouverte pour la masquer avant d'en ouvrir une autre.
Ma question est donc de savoir s'il existe un moyen pour forcer les autres contenus ouverts à se masquer pour laisser place au nouveau contenu sélectionné.
Donc dans mon exemple :
Si je clic sur ma miniature (2) alors que mon contenu (1) est affiché, celui-ci se ferme et laisse place au contenu (2) sans devoir aller recliquer sur ma miniature (1)
Si c'est possible, quelles sont les lignes de code à entrer.
Si pas existe-il un autre effet que le slide toggle qui permettrait d'effectuer ce que je veux ?
merci
Je vais tenter d'expliquer mon problème à l'aide de numéros et d'images ce sera surement plus simple (les images suives juste en dessous):
si je clic sur une première miniature (1) mon contenu (1) va apparaitre.
Et si maintenant je clique sur ma miniature (2) je vais avoir mon contenu (2) qui va s'ouvrir mais en dessous du contenu (1)
Je suis donc obligé de recliquer sur ma miniature (1) pour masquer mon contenu (1) et laisser la palce à mon contenu (2)
Exemple en images :
https://www.casimages.com/i/101129010950885796.jpg.html
https://www.casimages.com/i/101129011158893236.jpg.html
Ici ca va étant donné que je n'ai que 2 miniatures, mais si j'en ai 10 le visiteur devra à chaque fois retrouver la miniature qu'il a ouverte pour la masquer avant d'en ouvrir une autre.
Ma question est donc de savoir s'il existe un moyen pour forcer les autres contenus ouverts à se masquer pour laisser place au nouveau contenu sélectionné.
Donc dans mon exemple :
Si je clic sur ma miniature (2) alors que mon contenu (1) est affiché, celui-ci se ferme et laisse place au contenu (2) sans devoir aller recliquer sur ma miniature (1)
Si c'est possible, quelles sont les lignes de code à entrer.
Si pas existe-il un autre effet que le slide toggle qui permettrait d'effectuer ce que je veux ?
merci
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
29 nov. 2010 à 18:40
29 nov. 2010 à 18:40
Salut.
Comme je l'ai dit, il suffit de masquer tous les <div> dans le div les englobant.
Ensuite, tu afficheras le div voulu.
Sinon, tu peux stocker le div actuellement ouvert dans une variable.
Par exemple :
Il faudra ajouter ceci sur les vignettes :
Comme je l'ai dit, il suffit de masquer tous les <div> dans le div les englobant.
Ensuite, tu afficheras le div voulu.
Sinon, tu peux stocker le div actuellement ouvert dans une variable.
Par exemple :
var current = null; function afficher(id) { if(current != null) { current.style.display = 'none'; } current = document.getElementById(id); current.style.display = 'block'; }
Il faudra ajouter ceci sur les vignettes :
onclick="afficher('div1');"Où 'div1' est l'id du div qui contient le contenu correspondant à la vignette.
hugo_d
Messages postés
87
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
21 décembre 2013
30 nov. 2010 à 21:59
30 nov. 2010 à 21:59
Ok merci ca marche :-)
Par contre en rajoutant la ligne de code
je n'ai plus l'effet de déroulement du toggle, l'élément apparait d'un coup.
De plus si je reclique sur une miniature dont son contenu est affiché, impossible de le masquer. Le dernier élément visionné, déroulé apparait toujours.
Voici mon code pour mes deux image utilisant le toggle
Si tu désire le code complet de ma page n'hésite pas
Encore merci ;-)
Par contre en rajoutant la ligne de code
onclick="afficher('div1');"
je n'ai plus l'effet de déroulement du toggle, l'élément apparait d'un coup.
De plus si je reclique sur une miniature dont son contenu est affiché, impossible de le masquer. Le dernier élément visionné, déroulé apparait toujours.
Voici mon code pour mes deux image utilisant le toggle
<a href="#" onclick="afficher('miniature');".slideToggle('slow')"><img src="images/miniatures/image.jpg" width="119" height="59" /></a> <a href="#" onclick="afficher('miniature2');".slideToggle('slow')"><img src="images/miniatures/image2.jpg" width="119" height="59" /></a>
Si tu désire le code complet de ma page n'hésite pas
Encore merci ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
1 déc. 2010 à 13:27
1 déc. 2010 à 13:27
Il faut évidemment adapter.
Je ne sais pas le nom de la fonction de déroulement, ou la bibliothèque que tu utilises (jQuery, Scriptaculous, etc).
Pour masquer, il suffit de vérifier si l'élément actuellement affiché est le même que celui qu'on demande à afficher. Si oui, alors on le masque.
Je ne sais pas le nom de la fonction de déroulement, ou la bibliothèque que tu utilises (jQuery, Scriptaculous, etc).
Pour masquer, il suffit de vérifier si l'élément actuellement affiché est le même que celui qu'on demande à afficher. Si oui, alors on le masque.