Bootstrap 3 Chevron simgesiyle göster durumunu daralt


126

Collapse için Bootstrap 3 Javascript örnekleri sayfasından alınan temel örneği kullanarak, chevron simgelerini kullanarak daraltma durumunu gösterebildim.

Bunu kullanarak çalışıyorum:

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

Bu çalışıyor (tüm tarayıcılarda tam olarak test edilmemiştir), ancak bunun için daha zarif bir çözüm olup olmadığını merak ediyorum.

İdeal olarak temel işlevi kullanmak isterim, ancak onunla aynı sonuçları nasıl elde edeceğimi bilmiyorum.

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

İşte jsfiddle'ın çalışan bir versiyonu .


Merhaba, bu örnekte, başlığın tamamını sadece metin yerine bir köprü haline nasıl getirebilirim? başka bir deyişle, başlık paneline tıkladığımda, sadece metni değil, geçiş yapmak için görüntülemek istiyorum. bunu nasıl yaparım?
user1447718


@ user1447718 İşte tam olarak bunu yapan bir keman: JSFiddle Tüm başlığın tıklanabilir olmasını da istedim, bu yüzden SO'da bulduğum bazı çözümleri birleştirdim (bu da dahil).
Pieter VDE

Dperish benzer şekilde, benim yaptığım bu
Steve Greene

Yanıtlar:


241

Aşağıdaki HTML için ( Bootstrap 3 örneklerinden ):

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

Görsel efekt:

akordeon üzerinde bootstrap3 şerit simgesi


6
Bu iyi çalışıyor ... işte size bir jsFiddle: jsfiddle.net/panchroma/3gYa3
David

6
Keman içinde tüm köşeli çift ayraçlar başlangıçta aşağıyı gösterir. Bunun için kolay bir düzeltme var mı?
wuher

16
Başlangıç ​​durumu için saf bir CSS çözümü görmüyorum; Buradaki sorun, bootstrap'in siz en az birini daraltıncaya kadar bağlantıya "daraltılmış" sınıfını eklememesidir (başlamak için hepsi daraltılmış olsalar bile). Daha sonra, söz konusu sınıfı "açık" bağlantısından kaldırır. Bu nedenle, "açık" ve "varsayılan" aynı sınıfa sahip olduğundan, saf CSS çözümü yoktur. İdeal olarak bu, bootstrap'ın javascript'i, ayırt etmek için "açık" bir sınıf eklemek üzere değiştirilerek düzeltilebilir. O zamana kadar onunla yaşa veya diğer cevaplardan birinin JS'sini kullan.
Carl Bussema

56
Bunun eski bir gönderi olduğunu biliyorum, ancak Carl'ın sorununu yanıtlamak için - "akordeon geçişi" ile tüm bağlantı etiketlerine "daraltılmış" sınıfını eklerseniz, sorunlarınız ortadan kalkar ... Öyleyse "akordeon geçişi çöktü ". JQuery, ihtiyaç duyulduğunda sınıfları ekleyip kaldıracaktır.
steakpi

5
Bu örneği, başlığın tamamı tıklanabilir olacak şekilde değiştirdim. Fark ettiğim küçük bir hata, her panelin en sağ tarafındaki metnin, slayt açma / kapama animasyonu tamamlanana kadar biraz "itilmiş" olmasıdır. Bunu nasıl düzelteceğini bilen varsa, lütfen yap. İşte keman: Güncellenmiş JSFiddle
Pieter VDE

57

Bu tür bir kodu kullanabilirsiniz:

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

=> Çalışan JsFiddle


2
Bu çok daha iyi bir yol zessx, aferin dostum. Bu, Bootstrap 3 piyasaya sürüldüğünden beri gördüğüm ilk temiz çözüm.
Ryan Scott

9
Ayrıca şunu da kullanabilirsiniz$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
Sniper Wolf

4
Eğer ok tercih ederseniz çöküşün başında yerine kullanabileceğiniz sonunda taşımak için $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);yerine
Will Parker

Bu çok iyi çalışıyor. Simgeyi nasıl daha hızlı değiştirebilirim?
Rachel S

@RachelS Will Parker'ın önerisi bunu daha hızlı hale getiriyor.
Phil Jollans

22

Yanıtı en fazla artışla geliştirmek için, bazılarınız sayfanın ilk yüklemesinde köşeli çift ayraçların hepsinin aynı yönü gösterdiğini fark etmiş olabilirsiniz. Bu, daraltılmış olarak yüklemek istediğiniz öğelere "daraltılmış" sınıfını ekleyerek düzeltilir.

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

İşte çalışan bir keman: http://jsfiddle.net/3gYa3/585/


10

Bludream'in cevabında iyileştirme:

FontAwesome'ı kesinlikle kullanabilirsiniz!

"Panel başlığı" sınıfıyla birlikte "daraltılmış" ifadesini dahil ettiğinizden emin olun. "Daraltılmış" sınıf, siz paneli tıklayana kadar dahil edilmez, bu nedenle doğru köşeli çift ayraç görüntülemek için "daraltılmış" sınıfı dahil etmek istersiniz (yani, daraltıldığında sağ köşeli çift ayraç ve açıldığında köşeli çift ayraç görüntülenir).

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

Ayrıca, mevcut bir sınıfı kullanmak yerine yeni bir sınıf oluşturmak iyi bir uygulamadır.

Örneğin Codepen'e bakın: http://codepen.io/anon/pen/PPxOJX


Ve fontawesome 4: öğe için fa-chevron-up ve .collapsed .fa-chevron-up: sınıf için {content: "\ f077";} öncesinde
Denis Chenu

9

Biggates ve steakpi'ye teşekkürler. Dreamonic sorusunun cevabı olarak, tüm başlıkları tıklanabilir hale getirmek için küçük değişiklikler yaptım (sadece başlık dizesi ve yapıştırıcıları değil) ve bağlantıdan alt çizgiyi çıkardım. Bir simgenin aynı satırda görünmesini sağlamak için CSS talimatlarının sonuna h4 ekledim. İşte değiştirilen kod:

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

Ve değiştirilmiş CSS:

.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

İşte html'nizde her türlü geçiş içeriğini yönetmenize izin veren birkaç saf css yardımcı sınıfı.

Değiştirmeniz gereken herhangi bir öğe ile çalışır. Düzeniniz ne olursa olsun, onu toggle öğesinin içindeki .if-collapsed ve .if-not-collapsed sınıfları ile birkaç öğenin içine koyun.

Tek sorun, geçişin istenen ilk durumunu koyduğunuzdan emin olmanız gerektiğidir. Başlangıçta kapalıysa, geçişe daraltılmış bir sınıf koyun .

Ayrıca : seçici değil, IE8 üzerinde çalışmaz.

HTML örneği:

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

Daha az versiyon:

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

CSS sürümü:

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

6

Bunun eski olduğunu biliyorum, ancak şimdi 2018 olduğundan, kodu basitleştirerek ve chevron'u daraltılmış veya kapatılmamış olmasına göre döndürerek kullanıcı deneyimini geliştirerek daha iyi hale getireceğimi düşündüm. Ancak FontAwesome kullanıyorum. İşte 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);
}

Panel bölümü için HTML şu şekildedir:

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

Şevronu tam genişlikte ve duyarlı olması gereken panel başlığının tamamen sağına çekmek için önyükleme kayışlarını sağa çekiyorum. CSS, tüm animasyon çalışmasını yapar ve köşeli çift ayraç, panelin daraltılıp daraltılmamasına bağlı olarak döndürür. Basit.


4

basit örnek çalışma

  • gösterilen / gizlenen vücut durumunu al
  • ebeveynine git
  • bul simgesi
  • simgeyi değiştir

basit gir

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

veya ... bunun gibi bir stil koyabilirsiniz.

.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

Harika yazı tipi kullanıyorum ! ve bir panelin katlanabilir olmasını istedi

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

ve css

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

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


1

Angular, buradaki JavaScript tabanlı yaklaşımlarla (en azından denediklerim) sorunlara neden oluyor gibi görünüyor. Bu çözümü burada buldum: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . İşin özü data-ng-click, geçiş düğmesini kullanmak ve kontrolördeki düğmeyi değiştirmek için yöntem yapmaktır.$scope bağlamı .

Sanırım daha fazla ayrıntı sağlayabilirim ... düğmelerim daraltıldıkları div'in başlangıç ​​durumunun glifikonuna ayarlandı (glyphicon-chevron-right == daraltılmış div).

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

Tek astarı.

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

Bu örnekte, daraltılabilir tablo satırlarını gruplamak için kullanılmaktadır. Yapmanız gereken tek şey, hedef sınıf adını (my-collapse-name) simgenize eklemektir:

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

Sen kullanarak Bootstrap doğal şapka sınıfı ile aynı başarabileceğinizi <span class='caret my-collapse-name'></span>vespan.caret.collapse.in { transform: rotate(90deg); }


0

Bunu yalnızca panellerle (akordeon değil) kullanmaya çalışıyorsanız, şu kodu deneyin:

<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

Bir şablon aracılığıyla anında eklenen html'yi daraltmak ve genişletmek istediğim için saf bir html yaklaşımı istedim! Bunu ben buldum ...

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

var noJavascript = ":)";

Hangisi birisinin işine yarayabilir :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.