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 :

Folding de bloc


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut Folding de bloc
    Bonjour

    C'est une fonctionnalité toute simple pour l'utilisateur : une page web comporte plusieurs blocs, en haut de chacun il y a un petit bouton (typiquement une flèche). Un clic dessus, le bloc est réduit à juste une ligne. un nouveau clicet le bloc est à nouveau affiché en entier.

    Pour représenter les blocs, je pense utiliser (rien de définitif) des fieldsets, et s'ils posent des problèmes ce sera de bonne vieille div.

    J'ai plusieurs idée pour essayer de mettre en place ce folding :
    - en bricolant avec du CSS de la même façon que quand on utilise :hover pour surligner un élément quand le curseur passe dessus.
    - javascript et onclick

    Toutefois le temps me manque pour passer la journée à bricoler. L'un de vous aurait il un exemple ou une recommandation du genre "ça ça ne marchera pas" sous le coude ?

    Merci d'avance.

    PS : Désolé si ce post n'est pas à sa place dans ce forum

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Je te conseille le Javascript pour ce genre d'actions.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 74
    Par défaut
    Sur le onclick, tu change le display de la div à cacher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(document.getElementById(id_div).style.display == none){
        document.getElementById(id_div).style.display = "block";
    }else{
        document.getElementById(id_div).style.display = "none";
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Désolé pour le délais de réponse !


    @_IpC_: Idéalement j'aimerai avoir une ligne descriptive du contenu du bloc quand celui ci est replié. Donc est ce que ceci te parait bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <fieldset id='fieldset123'>
       <legend onClick=switchDisplay('fieldset123')>Bla</legend>
       <div id='short'>
          description courte
       </div>
       <div id='long'>
          contenu complet
       </div> 
    </fieldset>
    Avec bien sur switchDisplay qui inverse les deux display des div short et long du fieldSet dont on lui donne l'id.

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Oui pourquoi pas.

    Mais tu devrais regrouper les éléments à cacher en une seule balise car dans le cas présent si demain tu dois en ajouter un autre cela impactera ton code.

    ERE

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Donc plutôt quelquechose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <fieldset id='fieldset123'>
       <legend onClick=switchDisplay('fieldset123')>Bla</legend>
       <div id='displayBloc1'>
           <div id='element1'> ... Description ... </div>
           <div id='element2'> ... </div>
       </div>
       <div id='displayBloc2'>
           <div id='element3'> contenu </div>
           <div id='element4'> ... </div>
           <div id='element5'> ... </div>
       </div> 
       ...
    </fieldset>
    Où les displayBloc sont aussi permanent que faire ce peut, et je modifie 'juste' les elements. C'ets bien à ça que tu pensais Rémy ?

  7. #7
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Yes !

    ERE

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/04/2004, 16h53
  2. Réponses: 5
    Dernier message: 21/04/2004, 11h43
  3. Partage de blocs mémoire entre 2 processus
    Par rolkA dans le forum Windows
    Réponses: 6
    Dernier message: 18/11/2003, 19h08
  4. [VB6] mise en commentaire d'un bloc de code
    Par JuanDeLaPlaya dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 15h05
  5. Périphérique de bloc
    Par MAGNUM_HEAD dans le forum Administration système
    Réponses: 4
    Dernier message: 20/03/2003, 19h04

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