Bootstrap 3 Réduire l'état de l'affichage avec l'icône Chevron


126

En utilisant l'exemple de base tiré de la page d'exemples Javascript Bootstrap 3 pour Collapse , j'ai pu montrer l'état de réduction à l'aide d'icônes en chevron.

J'ai ce travail en utilisant:

$('#accordion .accordion-toggle').click(function (e) {
    var chevState = $(e.target).siblings("i.indicator").toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
    $("i.indicator").not(chevState).removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up");
});

Cela fonctionne (pas entièrement testé dans tous les navigateurs), mais je me demande s'il existe une solution plus élégante à cela?

Idéalement, j'aimerais utiliser la fonction principale, mais je ne sais pas comment obtenir les mêmes résultats avec elle.

$('#accordion').on('hidden.bs.collapse', function () {
    //do something...
})

Voici une version fonctionnelle de jsfiddle .


Salut, dans cet exemple, comment puis-je faire de l'en-tête entier un lien hypertexte au lieu d'un simple texte. en d'autres termes, lorsque je clique sur le panneau d'en-tête, pas seulement sur le texte, je veux afficher pour basculer. comment je fais ça?
user1447718


@ user1447718 Voici un violon qui fait exactement cela: JSFiddle Je voulais que l'en-tête entier soit cliquable aussi, alors j'ai combiné quelques solutions que j'ai trouvées dans SO (y compris celle-ci).
Pieter VDE

Similaire à dperish, j'ai fait ça
Steve Greene

Réponses:


241

Pour le HTML suivant (à partir d' exemples Bootstrap 3 ):

.panel-heading .accordion-toggle:after {
    /* symbol for "opening" panels */
    font-family: 'Glyphicons Halflings';  /* essential for enabling glyphicon */
    content: "\e114";    /* adjust as needed, taken from bootstrap.css */
    float: right;        /* adjust as needed */
    color: grey;         /* adjust as needed */
}
.panel-heading .accordion-toggle.collapsed:after {
    /* symbol for "collapsed" panels */
    content: "\e080";    /* adjust as needed, taken from bootstrap.css */
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript" ></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript" ></script>

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
          Collapsible Group Item #1
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
          Collapsible Group Item #2
        </a>
      </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
          Collapsible Group Item #3
        </a>
      </h4>
    </div>
    <div id="collapseThree" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

Effet visuel:

icône chevron bootstrap3 sur accordéon


6
Cela fonctionne bien ... voici un jsFiddle pour vous: jsfiddle.net/panchroma/3gYa3
David Taiaroa

6
Dans le violon, tous les chevrons pointent vers le bas au départ. Y a-t-il une solution simple pour cela?
wuher

16
Je ne vois pas de solution CSS pure pour l'état initial; le problème ici est que bootstrap n'ajoute pas la classe «collapsed» au lien tant que vous n'en réduisez pas au moins une (même si elles sont toutes réduites pour démarrer). Ensuite, il supprime simplement cette classe du lien «ouvert». Donc, comme "open" et "default" ont la même classe, il n'y a pas de bonne solution CSS pure. Idéalement, cela serait corrigé en modifiant le javascript de bootstrap pour ajouter une classe "ouverte" pour différencier. Jusque-là, vivez avec ou utilisez JS à partir de l'une des autres réponses.
Carl Bussema

56
Je sais que c'est un ancien post, mais pour répondre au problème de Carl - si vous ajoutez la classe "collapsed" sur toutes les balises d'ancrage avec "accordéon-toggle", vos problèmes disparaissent ... Alors faites "accordéon-toggle réduit" ". JQuery ajoutera et supprimera ensuite les classes en cas de besoin.
steakpi

5
J'ai modifié cet exemple pour que l'en-tête entier soit cliquable. Un bogue mineur que j'ai remarqué est que le texte à l'extrême droite de chaque panneau est «poussé» un peu jusqu'à ce que l'animation d'ouverture / fermeture de la diapositive se termine. Si quelqu'un sait comment résoudre ce problème, faites-le. Voici le violon: Mise à jour de JSFiddle
Pieter VDE

57

Vous pouvez utiliser ce type de code:

function toggleChevron(e) {
    $(e.target)
        .prev('.panel-heading')
        .find('i.indicator')
        .toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
}
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);

=> Travail JsFiddle


2
C'est une bien meilleure façon zessx, bravo mon pote. C'est la première solution propre que j'ai vue depuis le lancement de Bootstrap 3.
Ryan Scott

9
Vous pouvez également utiliser$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
Sniper Wolf

4
Si vous préférez que la flèche se déplace au début de l'effondrement plutôt qu'à la fin, vous pouvez l'utiliser à la $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);place
Will Parker

Cela fonctionne très bien. Comment faire basculer l'icône plus rapidement?
Rachel S

@RachelS La suggestion de Will Parker rend les choses plus rapides.
Phil Jollans

22

Pour améliorer la réponse avec le plus de hausses, certains d'entre vous ont peut-être remarqué lors du chargement initial de la page que les chevrons pointent tous dans la même direction. Ceci est corrigé en ajoutant la classe "collapsed" aux éléments que vous souhaitez charger réduits.

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
          Collapsible Group Item #1
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
          Collapsible Group Item #2
        </a>
      </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
          Collapsible Group Item #3
        </a>
      </h4>
    </div>
    <div id="collapseThree" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

Voici un violon fonctionnel: http://jsfiddle.net/3gYa3/585/


10

Amélioration de la réponse de Bludream:

Vous pouvez certainement utiliser FontAwesome!

Assurez-vous d'inclure la classe "réduit" avec la classe "titre de panneau". La classe "réduit" n'est pas incluse tant que vous n'avez pas cliqué sur le panneau pour que vous souhaitiez inclure la classe "réduit" afin d'afficher le chevron correct (c'est-à-dire que le chevron-droit est affiché lorsqu'il est réduit et le chevron-bas lorsqu'il est ouvert).

HTML

<div class="panel panel-default">
    <div class="panel-heading collapsed" data-toggle="collapse" data-target="#collapseOrderItems1">Products 1 <i class="chevron fa fa-fw" ></i></div>
    <div class="collapse" id="collapseOrderItems1">
        <p>Lorem ipsum...</p>
    </div>
</div>

CSS

.panel-heading .chevron:after {
    content: "\f078";   
}
.panel-heading.collapsed .chevron:after {
    content: "\f054";   
}   

En outre, il est recommandé de créer une nouvelle classe au lieu d'utiliser une classe existante.

Voir Codepen par exemple: http://codepen.io/anon/pen/PPxOJX


Et avec fontawesome 4: fa-chevron-up pour l'élément et .collapsed .fa-chevron-up: before {content: "\ f077";} pour la classe
Denis Chenu

9

Merci aux biggates et aux steakpi. En réponse à la question Dreamonic, j'ai apporté quelques modifications pour rendre tous les en-têtes cliquables (pas seulement la chaîne de titre et les gluphes) et j'ai enlevé le soulignement du lien. Pour forcer une icône à apparaître sur la même ligne, j'ai ajouté h4 à la fin des instructions CSS. Voici le code modifié:

<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">      
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
          <h4 class="panel-title">Collapsible Group Item #1</h4>
        </a>      
    </div>
    <div id="collapseOne" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">      
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
          <h4 class="panel-title">Collapsible Group Item #2</h4>
        </a>      
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">      
        <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
          <h4 class="panel-title">Collapsible Group Item #3</h4>
        </a>      
    </div>
    <div id="collapseThree" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

Et le CSS modifié:

.panel-heading .accordion-toggle h4:after {
    /* symbol for "opening" panels */
    font-family: 'Glyphicons Halflings';  
    content: "\e114";    
    float: right;        
    color: grey;        
    overflow: no-display;
}
.panel-heading .accordion-toggle.collapsed h4:after {
    /* symbol for "collapsed" panels */
    content: "\e080";    
}
a.accordion-toggle{
    text-decoration: none;
}

7

Voici quelques classes d'assistance css pures qui vous permettent de gérer tout type de contenu à bascule directement dans votre html.

Cela fonctionne avec n'importe quel élément que vous devez changer. Quelle que soit votre disposition, vous la placez simplement dans quelques éléments avec les classes .if-collapsed et .if-not-collapsed dans l'élément toggle.

Le seul problème est que vous devez vous assurer de mettre l'état initial souhaité de la bascule. S'il est initialement fermé, placez une classe réduite sur la bascule.

Il nécessite également le : pas de sélecteur, cela ne fonctionne pas sur IE8.

Exemple HTML:

<a class="btn btn-primary collapsed" data-toggle="collapse" href="#collapseExample">
  <!--You can put any valid html inside these!-->
  <span class="if-collapsed">Open</span>
  <span class="if-not-collapsed">Close</span>
</a>
<div class="collapse" id="collapseExample">
  <div class="well">
    ...
  </div>
</div>

Moins de version:

[data-toggle="collapse"] {
    &.collapsed .if-not-collapsed {
         display: none;
    }
    &:not(.collapsed) .if-collapsed {
         display: none;
    }
}

Version CSS:

[data-toggle="collapse"].collapsed .if-not-collapsed {
  display: none;
}
[data-toggle="collapse"]:not(.collapsed) .if-collapsed {
  display: none;
}

6

Je sais que c'est vieux mais puisque nous sommes maintenant en 2018, je pensais que je répondrais en améliorant les choses en simplifiant le code et en améliorant l'expérience utilisateur en faisant pivoter le chevron en fonction de l'effondrement ou non. J'utilise FontAwesome cependant. Voici le CSS:

a[data-toggle="collapse"] .rotate {
   -webkit-transition: all 0.2s ease-out;
   -moz-transition: all 0.2s ease-out;
   -ms-transition: all 0.2s ease-out;
   -o-transition: all 0.2s ease-out;
   transition: all 0.2s ease-out;
   -moz-transform: rotate(90deg);
   -ms-transform: rotate(90deg);
   -webkit-transform: rotate(90deg);
   transform: rotate(90deg);
}
a[data-toggle="collapse"].collapsed .rotate {
   -moz-transform: rotate(0deg);
   -ms-transform: rotate(0deg);
   -webkit-transform: rotate(0deg);
   transform: rotate(0deg);
}

Voici le code HTML de la section panneau:

  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
          Collapsible Group Item #1
          <i class="fa fa-chevron-right pull-right rotate"></i>
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>

J'utilise bootstraps pull-right pour tirer le chevron tout le chemin vers la droite de l'en-tête du panneau qui doit être pleine largeur et réactif. Le CSS effectue tout le travail d'animation et fait pivoter le chevron en fonction de si le panneau est réduit ou non. Facile.


4

exemple simple de travail

  • obtenir l'état corporel affiché / masqué
  • aller à son parent att
  • obtenir l'icône de recherche
  • icône de changement

entrer simple

HTML :

<body>
    <div class="accordion-group">
        <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#jai">Jai</a>
        </div>
        <div id="jai" class="accordion-body collapse in">
            <div>
                <div class="accordion-inner">body content 1</div>
            </div>
        </div>
    </div>
    <div class="accordion-group">
        <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">jai2</a>
        </div>
        <div id="collapseTwo" class="accordion-body collapse">
            <div>
                <div class="accordion-inner">body content 2</div>
            </div>
        </div>
    </div>
    <div class="accordion-group">
        <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse3">jai3</a>
        </div>
        <div id="collapse3" class="accordion-body collapse">
            <div>
                <div class="accordion-inner">body content 3</div>
            </div>
        </div>
    </div>
</body>

JavaScript

$('div.accordion-body').on('shown', function () {
    $(this).parent("div").find(".icon-chevron-down")
           .removeClass("icon-chevron-down").addClass("icon-chevron-up");
});

$('div.accordion-body').on('hidden', function () {
    $(this).parent("div").find(".icon-chevron-up")
           .removeClass("icon-chevron-up").addClass("icon-chevron-down");
});

2

ou ... vous pouvez simplement mettre un style comme celui-ci.

.panel-title a.collapsed {
     background: url(../img/arrow_right.png) center right no-repeat;
}
.panel-title a {
     background: url(../img/arrow_down.png) center right no-repeat;
}

http://codepen.io/anon/pen/GJjrQN


1

J'utilise une police géniale ! et voulait qu'un panneau soit pliable

        <div class="panel panel-default">
                <div class="panel-heading" data-toggle="collapse" data-target="#collapseOrderItems"><i class="fa fa-chevron fa-fw" ></i> products</div>

                <div class="collapse in" id="collapseOrderItems">
                            ....
                </div>
        </div>

et le css

.panel-heading .fa-chevron:after {
    content: "\f078";   
}
.panel-heading.collapsed .fa-chevron:after {
    content: "\f054";   
}

entrez la description de l'image ici

entrez la description de l'image ici


1

Angular semble causer des problèmes avec les approches basées sur JavaScript ici (du moins celles que j'ai essayées). J'ai trouvé cette solution ici: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . L'essentiel est d'utiliser data-ng-clickle bouton bascule et de créer la méthode pour changer le bouton dans le contrôleur en utilisant le $scopecontexte.

Je suppose que je pourrais fournir plus de détails ... mes boutons sont définis sur le glyphicon de l'état initial de la div qu'ils réduisent (glyphicon-chevron-right == collapsed div).

page.html:

<div class="title-1">
    <button data-toggle="collapse" data-target="#panel-{{ p_idx }}" class="dropdown-toggle title-btn glyphicon glyphicon-chevron-right" data-ng-click="collapse($event)"></button>
</div>
<div id="panel-{{ p_idx }}" class="collapse sect">
    ...
</div>

controllers.js:

.controller('PageController', function($scope, $rootScope) {
    $scope.collapse = function (event) {
        $(event.target).toggleClass("glyphicon-chevron-down glyphicon-chevron-right");
    };
)

1

Bon mot.

i.fa.fa-chevron-right.collapse.in { transform: rotate(180deg); }

Dans cet exemple, il est utilisé pour regrouper des lignes de table réductibles. La seule chose que vous devez faire est d'ajouter le nom de la classe cible (my-collapse-name) à votre icône:

<tr data-toggle="collapse" data-target=".my-collapse-name">
    <th><i class="fa fa-chevron-right my-collapse-name"></span></th>
    <th>Master Row - Title</th>
</tr>
<tr class="collapse my-collapse-name">
    <td></td>
    <td>Detail Row - Content</td>
</tr>

Vous pouvez accomplir la même chose avec la classe caret native de Bootstrap en utilisant <span class='caret my-collapse-name'></span>etspan.caret.collapse.in { transform: rotate(90deg); }


0

Si vous essayez de l'utiliser uniquement avec des panneaux (pas avec l'accordéon), essayez ce code:

<div class="panel panel-default">
    <div class="panel-heading">
        <h4 class="panel-title">
            <a class="collapse-toggle" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">Panel heading with title</a>
        </h4>
    </div>
    <div id="collapseExample" class="panel-collapse collapse in">
        <div class="panel-body">
            Panel content
        </div>
    </div>
</div>

-3

Je voulais une approche purement html car je voulais réduire et étendre le html qui a été ajouté à la volée via un modèle! Je suis venu avec ça ...

https://jsfiddle.net/3mguht2y/1/

var noJavascript = ":)";

Ce qui pourrait être utile à quelqu'un :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.