Bootstrap 3 Thu gọn trạng thái hiển thị với biểu tượng Chevron


126

Sử dụng ví dụ cốt lõi được lấy từ trang ví dụ Javascript của Bootstrap 3 cho Thu gọn , tôi đã có thể hiển thị trạng thái thu gọn bằng các biểu tượng chevron.

Tôi có công việc này bằng cách sử dụng:

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

Điều này hoạt động (không được kiểm tra đầy đủ trong tất cả các trình duyệt), nhưng tôi tự hỏi liệu có giải pháp nào thanh lịch hơn cho vấn đề này không?

Lý tưởng nhất là tôi muốn sử dụng chức năng cốt lõi, nhưng tôi không chắc làm thế nào để đạt được kết quả tương tự với nó.

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

Đây là một phiên bản làm việc trong jsfiddle .


Xin chào, trong ví dụ này, làm thế nào để tôi tạo toàn bộ tiêu đề thành một siêu liên kết thay vì chỉ văn bản. nói cách khác, khi tôi nhấp vào bảng tiêu đề, không chỉ văn bản, tôi muốn hiển thị để chuyển đổi. Làm thế nào để làm điều đó?
dùng1447718


@ user1447718 Đây là một fiddle làm chính xác điều đó: JSFiddle Tôi cũng muốn toàn bộ tiêu đề có thể nhấp được, vì vậy tôi đã kết hợp một số giải pháp tôi tìm thấy trên SO (bao gồm cả giải pháp này).
Pieter VDE

Tương tự như dperish, tôi đã làm điều này
Steve Greene

Câu trả lời:


241

Đối với HTML sau (từ ví dụ 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>

Hiệu ứng hình ảnh:

biểu tượng chevron bootstrap3 trên accordion


6
Điều này hoạt động tốt ... đây là một jsFiddle dành cho bạn: jsfiddle.net/panchroma/3gYa3
David Taiaroa

6
Trong fiddle, tất cả các chevron chỉ xuống ban đầu. Có một sửa chữa dễ dàng cho điều đó?
wuher

16
Tôi không thấy một giải pháp CSS thuần túy cho trạng thái ban đầu; vấn đề ở đây là bootstrap không thêm lớp "thu gọn" vào liên kết cho đến khi bạn thu gọn ít nhất một (ngay cả khi tất cả chúng bị sụp đổ để bắt đầu). Sau đó, nó chỉ cần loại bỏ lớp đó khỏi liên kết cho "mở." Vì vậy, vì "mở" và "mặc định" có cùng một lớp, không có giải pháp CSS thuần túy nào. Lý tưởng nhất điều này sẽ được khắc phục bằng cách sửa đổi javascript của bootstrap để thêm một lớp "mở" để phân biệt. Cho đến lúc đó, hãy sống với nó hoặc sử dụng JS từ một trong những câu trả lời khác.
Carl Bussema

56
Tôi biết đây là một bài viết cũ, nhưng để trả lời vấn đề của Carl - nếu bạn thêm lớp "sụp đổ" trên tất cả các thẻ neo với "accordion-toggle", các vấn đề của bạn sẽ biến mất .... Vì vậy, "chuyển đổi accordion đã sụp đổ ". JQuery sau đó sẽ thêm và xóa các lớp khi cần.
bít tết

5
Tôi đã sửa đổi ví dụ này để toàn bộ tiêu đề có thể nhấp được. Một lỗi nhỏ tôi đã nhận thấy là văn bản ở phía bên phải của mỗi bảng được "đẩy" một chút cho đến khi hoàn thành hoạt hình mở / đóng slide. Nếu ai biết cách khắc phục điều đó, xin vui lòng làm. Đây là câu đố: Cập nhật JSFiddle
Pieter VDE

57

Bạn có thể sử dụng loại mã này:

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

=> Làm việc JsFiddle


2
Đó là một cách tốt hơn nhiều zessx, người bạn đời được thực hiện tốt. Đây là giải pháp sạch đầu tiên tôi thấy kể từ khi Bootstrap 3 ra mắt.
Ryan Scott

9
Bạn cũng có thể sử dụng$('#accordion').on('hidden.bs.collapse shown.bs.collapse', toggleChevron);
Sniper Wolf

4
Nếu bạn thích mũi tên di chuyển vào lúc bắt đầu sụp đổ thay vì ở cuối, bạn có thể sử dụng $('#accordion').on('hide.bs.collapse show.bs.collapse', toggleChevron);thay vào đó
Will Parker

Điều này hoạt động rất tốt. Làm cách nào để làm cho biểu tượng chuyển đổi nhanh hơn?
Rachel S

@RachelS Gợi ý từ Will Parker làm cho nó nhanh hơn.
Phil Jollans

22

Để cải thiện câu trả lời với hầu hết các lượt truy cập, một số bạn có thể nhận thấy trên tải ban đầu của trang rằng tất cả các chevron đều cùng hướng. Điều này được sửa chữa bằng cách thêm lớp "thu gọn" vào các phần tử mà bạn muốn tải được thu gọn.

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

Đây là một fiddle làm việc: http://jsfiddle.net/3gYa3/585/


10

Cải thiện câu trả lời của Bludream:

Bạn chắc chắn có thể sử dụng FontAwgie!

Đảm bảo bao gồm "thu gọn" cùng với lớp "bảng tiêu đề". Lớp "được thu gọn" không được bao gồm cho đến khi bạn nhấp vào bảng điều khiển để bạn muốn bao gồm lớp "được thu gọn" để hiển thị đúng chevron (nghĩa là, chevron-right được hiển thị khi thu gọn và chevron-down khi mở).

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

Ngoài ra, đó là một cách thực hành tốt để tạo một lớp mới thay vì sử dụng một lớp hiện có.

Xem Codepen ví dụ: http://codepen.io/anon/pen/PPxOJX


Và với fontawgie 4: fa-chevron-up cho phần tử và .collapsed .fa-chevron-up: before {content: "\ f077";} cho lớp
Denis Chenu

9

Nhờ biggates và bít tết. Để trả lời câu hỏi Dreamonic, tôi đã thực hiện một số thay đổi nhỏ để làm cho tất cả các tiêu đề có thể nhấp (không chỉ chuỗi tiêu đề và gluphs) và gỡ bỏ gạch chân từ liên kết. Để buộc một biểu tượng xuất hiện trên cùng một dòng, tôi đã thêm h4 vào cuối hướng dẫn CSS. Đây là mã sửa đổi:

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

Và CSS đã sửa đổi:

.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

Đây là một vài lớp trình trợ giúp css thuần túy cho phép bạn xử lý bất kỳ loại nội dung chuyển đổi nào ngay trong html của bạn.

Nó hoạt động với bất kỳ yếu tố nào bạn cần chuyển đổi. Dù bố cục của bạn là gì, bạn chỉ cần đặt nó bên trong một vài phần tử với các lớp .if-sụp đổ và .if-không-sụp đổ trong phần tử chuyển đổi.

Điều hấp dẫn duy nhất là bạn phải đảm bảo rằng bạn đặt trạng thái ban đầu mong muốn của việc chuyển đổi. Nếu nó ban đầu đóng cửa, sau đó đặt một lớp bị sụp đổ trên chuyển đổi.

Nó cũng yêu cầu : không phải bộ chọn, nó không hoạt động trên IE8.

Ví dụ về 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>

Phiên bản ít hơn:

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

Phiên bản CSS:

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

6

Tôi biết điều này đã cũ nhưng vì bây giờ là năm 2018, tôi nghĩ rằng tôi sẽ trả lời làm cho nó tốt hơn bằng cách đơn giản hóa mã và nâng cao trải nghiệm người dùng bằng cách xoay chevron dựa trên thu gọn hay không. Tôi đang sử dụng FontAwgie tuy nhiên. Đây là 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);
}

Đây là HTML cho phần bảng điều khiển:

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

Tôi sử dụng bootstraps pull-right để kéo chevron hoàn toàn sang bên phải của tiêu đề bảng điều khiển nên có chiều rộng đầy đủ và đáp ứng. CSS thực hiện tất cả các hoạt ảnh hoạt động và xoay chevron dựa trên việc bảng điều khiển có được thu gọn hay không. Đơn giản.


4

làm việc đơn giản

  • có được tình trạng cơ thể được hiển thị / ẩn
  • nhận được cha mẹ của nó
  • tìm biểu tượng
  • thay đổi biểu tượng

nhập đơn giản

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

hoặc ... bạn chỉ có thể đặt một số phong cách như thế này.

.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

Tôi đang sử dụng phông chữ tuyệt vời ! và muốn một bảng điều khiển có thể được thu gọn

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

và css

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

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


1

Angular dường như gây ra vấn đề với các cách tiếp cận dựa trên JavaScript ở đây (ít nhất là các cách tôi đã thử). Tôi tìm thấy giải pháp này ở đây: http://www.codeproject.com/Articles/987311/Collapsible-Responsive-Master-Child-Grid-Using-Ang . Ý chính của nó là sử dụng data-ng-clicknút chuyển đổi và thực hiện phương thức thay đổi nút trong bộ điều khiển bằng cách sử dụng $scopengữ cảnh.

Tôi đoán rằng tôi có thể cung cấp thêm chi tiết ... các nút của tôi được đặt thành glyphicon của trạng thái ban đầu của div mà chúng sụp đổ (glyphicon-chevron-right == div sụp đổ).

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

controls.js:

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

1

Lót.

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

Trong ví dụ này, nó được sử dụng để nhóm các hàng của bảng có thể thu gọn. Điều duy nhất bạn cần làm là thêm tên lớp đích (tên my-sụp đổ) vào biểu tượng của bạn:

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

Bạn có thể thực hiện tương tự với lớp caret riêng của Bootstrap bằng cách sử dụng <span class='caret my-collapse-name'></span>span.caret.collapse.in { transform: rotate(90deg); }


0

Nếu bạn đang cố gắng chỉ sử dụng bảng này (không phải accordeon), hãy thử mã này:

<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

Tôi muốn một cách tiếp cận html thuần túy vì tôi muốn thu gọn và mở rộng html được thêm vào một cách nhanh chóng thông qua một mẫu! Tôi nghĩ ra cái này ...

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

var noJavascript = ":)";

Mà có thể được sử dụng cho ai đó :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.