【发布时间】:2020-08-31 15:59:49
【问题描述】:
我有一个 bootstrap 4 手风琴,我需要的是在手风琴“打开”时旋转并有条件地指向上方并在关闭时返回的图标。我可以用 css 做到这一点,但我需要它有条件地发生,因为有“活动”状态,而不是应该触发手风琴打开的事件,如果这有意义的话。
HTML:
<div class="accordion" id="accordion-nav">
<div class="accordion-item">
<div class="item-header" id="heading">
<button class="btn btn-link btn-nav-accordion" type="button" data-toggle="collapse"
data-target="#collapseDosing" aria-expanded="false" aria-controls="collapseDosing">
<span>panel</span>
<i class="fas fa-chevron-down "></i>
</button>
</div>
<div id="collapseDosing" class="collapse collapse-nav-accordion"
aria-labelledby="heading-dosing" data-parent="#accordion-nav">
<div class="accordion-body">
<div class="l-accordion-body">
<h1>Body</h1>>
</div>
</div>
</div>
</div>
<div class="accordion-item accordion-item--savings">
<div class="item-header" id="heading-savings">
<button class="btn btn-link btn-nav-accordion" type="button" data-toggle="collapse"
data-target="#collapseSavings" aria-expanded="false" aria-controls="collapseSavings">
<span>panel</span>
<i class="fas fa-chevron-down"></i>
</button>
</div>
<div id="collapseSavings" class="collapse collapse-nav-accordion"
aria-labelledby="heading-savings" data-parent="#accordion-nav">
<div class="accordion-body">
<div class="l-accordion-body">
<h1>Body</h1>
</div>
</div>
</div>
</div>
</div>
css:(确实在点击事件上工作)但有条件地需要另一种方式(js)我认为
.btn-nav-accordion[aria-expanded="true"] {
.fa-chevron-down {
transform: rotate(180deg);
}
}
js:当前有效,但当我单击手风琴关闭时不会删除该类
$(".collapse-nav-accordion").each(function () {
var currentAccordion = this;
if ($(currentAccordion).hasClass("show")) {
$(currentAccordion).parent().find("i").addClass("rotate");
} else {
$(currentAccordion).parent().find("i").removeClass("rotate");
}
});
【问题讨论】:
标签: javascript html jquery css twitter-bootstrap