Я знаю, что вы можете сделать это, используя JavaScript, но у меня есть чистый CSS способ сделать это:
HTML
Я удалил все ненужные атрибуты на тег привязки. Еще убрал fa-angle-down
на иконке. Состояние значка будет установлено через CSS.
<div id="headingOne">
<h5 class="card-title">
Or Files
<a data-toggle="collapse" class="float-right" data-target="#collapseFiles">
<i class="fas"></i>
</a>
</h5>
<div class="card-body">
<p id="collapseFiles" class="card-text collapse show">
Some quick example text to build on the card title and make up the bulk of
the card's content.
</p>
</div>
</div>
<div id="headingTwo">
<h5 class="card-title">
Or Notes
<a data-toggle="collapse" class="float-right" data-target="#collapseNotes">
<i class="fas"></i>
</a>
</h5>
<div class="card-body">
<p id="collapseNotes" class="card-text collapse show">
Some quick example text to build on the card title and make up the bulk of
the card's content.
</p>
</div>
</div>
<div id="headingThree">
<h5 class="card-title">
Or Name
<a data-toggle="collapse" class="float-right" data-target="#collapseNames">
<i class="fas"></i>
</a>
</h5>
<div class="card-body">
<p id="collapseNames" class="card-text collapse show">
Some quick example text to build on the card title and make up the bulk of
the card's content.
</p>
</div>
</div>
CSS
Вы можете написать CSS для таргетинга на любой тег привязки, имеющий атрибут data-toggle="collapse"
. Когда он сворачивается, Bootstraps добавляет класс .collapsed
, чтобы вы могли использовать его для соответствующего стиля значка.
a[data-toggle="collapse"] i.fas:before {
content: "\f107"; /* angle-down */
}
a[data-toggle="collapse"].collapsed i.fas:before {
content: "\f106"; /* angle-up */
}
Снимки экрана
Fiddle Demo
https://jsfiddle.net/davidliang2008/og1t8ksj/26/