Bootstrap 3 Collapse tunjukkan status dengan ikon Chevron

126

Menggunakan contoh inti yang diambil dari halaman contoh Javascript Bootstrap 3 untuk Ciutkan , saya telah dapat menunjukkan keadaan runtuhnya menggunakan ikon chevron.

Saya memiliki ini berfungsi menggunakan:

$('#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");
});

Ini berfungsi (tidak sepenuhnya diuji di semua browser), tapi saya ingin tahu apakah ada solusi yang lebih elegan untuk ini?

Idealnya saya ingin menggunakan fungsi inti, tapi saya tidak yakin bagaimana mencapai hasil yang sama dengannya.

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

Berikut adalah versi yang berfungsi di jsfiddle .

Ryan Scott
sumber
Hai, dalam contoh ini, bagaimana cara membuat keseluruhan tajuk hyperlink, bukan hanya teks. dengan kata lain, ketika saya mengklik panel tajuk, bukan hanya teks, saya ingin menampilkan untuk beralih. bagaimana aku melakukan itu?
user1447718
@ user1447718 Ini biola yang melakukan hal itu: JSFiddle Saya ingin seluruh header juga bisa diklik, jadi saya menggabungkan beberapa solusi yang saya temukan di SO (termasuk yang ini).
Pieter VDE
Mirip dengan dperish, saya melakukan ini
Steve Greene

Jawaban:

241

Untuk HTML berikut (dari contoh 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>

Efek visual:

ikon bootstrap3 chevron pada akordeon

gerbang besar
sumber
6
Ini berfungsi dengan baik ... inilah jsFiddle untuk Anda: jsfiddle.net/panchroma/3gYa3
David Taiaroa
6
Dalam biola, semua chevron menunjuk ke bawah pada awalnya. Apakah ada perbaikan yang mudah untuk itu?
wuher
16
Saya tidak melihat solusi CSS murni untuk keadaan awal; masalahnya di sini adalah bootstrap tidak menambahkan kelas "collapsed" ke tautan sampai Anda menutup paling tidak satu (bahkan jika mereka semua collapsed untuk memulai). Maka itu hanya menghapus kelas itu dari tautan untuk "terbuka." Jadi karena "open" dan "default" memiliki kelas yang sama, tidak ada solusi CSS murni yang bagus. Idealnya ini akan diperbaiki dengan memodifikasi javascript bootstrap untuk menambahkan kelas "terbuka" untuk membedakan. Sampai saat itu, hidup dengannya, atau gunakan JS dari salah satu jawaban lain.
Carl Bussema
56
Saya tahu ini adalah pos lama, tetapi untuk menjawab masalah Carl - jika Anda menambahkan kelas "runtuh" ​​pada semua tag jangkar dengan "akordeon-toggle", masalah Anda akan hilang .... Jadi, "akordeon-toggle runtuh ". JQuery kemudian akan menambah dan menghapus kelas saat dibutuhkan.
steakpi
5
Saya memodifikasi contoh ini sehingga seluruh tajuk dapat diklik. Satu bug kecil yang saya perhatikan adalah bahwa teks di sisi paling kanan dari setiap panel "didorong" sedikit sampai setelah slide buka / tutup animasi selesai. Jika ada yang tahu cara memperbaikinya, silakan lakukan. Berikut biola: JSFiddle Diperbarui
Pieter VDE
57

Anda dapat menggunakan kode semacam ini:

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);

=> Bekerja JsFiddle

zessx
sumber
2
Itu cara yang jauh lebih baik zessx, teman baik dilakukan. Ini adalah solusi bersih pertama yang saya lihat sejak Bootstrap 3 diluncurkan.
Ryan Scott
9
Anda juga dapat menggunakan$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
Sniper Wolf
4
Jika Anda lebih suka panah untuk bergerak di awal keruntuhan daripada di akhir Anda dapat menggunakan $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);sebagai gantinya
Will Parker
Ini bekerja dengan sangat baik. Bagaimana cara membuat ikon beralih lebih cepat?
Rachel S
@ RachelS Saran dari Will Parker membuatnya lebih cepat.
Phil Jollans
22

Untuk meningkatkan jawaban dengan paling banyak upticks, beberapa dari Anda mungkin telah memperhatikan pada beban awal halaman bahwa chevron semuanya menunjuk ke arah yang sama. Ini dikoreksi dengan menambahkan kelas "collapsed" ke elemen yang Anda ingin memuat collapsed.

<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>

Berikut adalah biola yang berfungsi: http://jsfiddle.net/3gYa3/585/

Tentukan
sumber
10

Peningkatan pada jawaban Bludream:

Anda pasti bisa menggunakan FontAwesome!

Pastikan untuk menyertakan "collapsed" bersama dengan kelas "heading panel". Kelas "diciutkan" tidak termasuk sampai Anda mengklik pada panel sehingga Anda ingin menyertakan kelas "diciutkan" untuk menampilkan chevron yang benar (yaitu, chevron-kanan ditampilkan ketika diciutkan dan chevron-turun saat terbuka).

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";   
}   

Juga, itu adalah praktik yang baik untuk membuat kelas baru alih-alih menggunakan kelas yang ada.

Lihat Codepen misalnya: http://codepen.io/anon/pen/PPxOJX

Kastil
sumber
Dan dengan fontawesome 4: fa-chevron-up untuk elemen dan .collapsed .fa-chevron-up: before {content: "\ f077";} untuk kelas
Denis Chenu
9

Terima kasih untuk biggates dan steakpi. Sebagai jawaban dari pertanyaan Dreamonic, saya membuat sedikit perubahan untuk membuat semua header dapat diklik (tidak hanya judul string dan gluph) dan melepas garis bawah dari tautan. Untuk memaksa ikon muncul di baris yang sama, saya menambahkan h4 di akhir instruksi CSS. Berikut adalah kode yang dimodifikasi:

<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>

Dan CSS yang dimodifikasi:

.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;
}
Jeff_Alieffson
sumber
7

Berikut adalah beberapa kelas pembantu css murni yang memungkinkan Anda menangani segala jenis konten toggle langsung di html Anda.

Ini bekerja dengan elemen apa pun yang Anda butuhkan untuk beralih. Apa pun tata letak Anda, Anda cukup meletakkannya di dalam beberapa elemen dengan kelas .if-collapsed dan .if-not-collapsed di dalam elemen toggle.

Satu-satunya tangkapan adalah bahwa Anda harus memastikan Anda memasukkan keadaan awal yang diinginkan dari beralih. Jika awalnya ditutup, maka letakkan kelas yang runtuh di sakelar.

Ini juga memerlukan : tidak pemilih, itu tidak berfungsi di IE8.

Contoh 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>

Versi kurang:

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

Versi CSS:

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

Saya tahu ini sudah lama tetapi karena sekarang tahun 2018, saya pikir saya akan menjawab membuatnya lebih baik dengan menyederhanakan kode dan meningkatkan pengalaman pengguna dengan membuat chevron rotate berdasarkan collapsed atau tidak. Saya menggunakan FontAwesome. Inilah CSS-nya:

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);
}

Inilah HTML untuk bagian panel:

  <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>

Saya menggunakan bootstraps pull-right untuk menarik chevron hingga ke kanan heading panel yang harus lebar penuh dan responsif. CSS mengerjakan semua pekerjaan animasi dan memutar chevron berdasarkan apakah panelnya runtuh atau tidak. Sederhana.

Robert Lindabury
sumber
4

contoh sederhana bekerja

  • tampilkan kondisi tubuh / disembunyikan
  • sampai ke att induknya
  • dapatkan ikon find
  • ubah ikon

masukkan sederhana

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");
});
jai
sumber
2

atau ... Anda bisa menaruh beberapa gaya seperti ini.

.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

kangcireng
sumber
1

Saya menggunakan font yang luar biasa ! dan ingin panel dilipat

        <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>

dan css

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

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

azerafati
sumber
1

Sudut tampaknya menyebabkan masalah dengan pendekatan berbasis JavaScript di sini (setidaknya yang saya coba). Saya menemukan solusi ini di sini: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . Inti dari itu adalah untuk digunakan data-ng-clickpada tombol sakelar dan buat metode untuk mengubah tombol pada pengontrol menggunakan$scope konteks.

Saya kira saya bisa memberikan lebih detail ... tombol saya diatur ke glyphicon dari keadaan awal div mereka runtuh (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");
    };
)
LostNomad311
sumber
1

Satu garis.

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

Dalam contoh ini digunakan untuk mengelompokkan baris tabel yang dapat dilipat. Satu-satunya hal yang perlu Anda lakukan adalah menambahkan nama kelas target (my-collapse-name) ke ikon Anda:

<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>

Anda dapat mencapai hal yang sama dengan kelas caret asli Bootstrap dengan menggunakan <span class='caret my-collapse-name'></span>danspan.caret.collapse.in { transform: rotate(90deg); }

dperish
sumber
0

Jika Anda mencoba menggunakan ini hanya dengan panel (bukan akordeon), coba kode ini:

<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>
Nils
sumber
-3

Saya ingin pendekatan html murni karena saya ingin menutup dan memperluas html yang ditambahkan dengan cepat melalui template! Saya datang dengan ini ...

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

var noJavascript = ":)";

Yang mungkin berguna bagi seseorang :)

Mattius
sumber