如何在卡片关闭时使箭头指向下方并在没有 jquery 或 javascript 的情况下在第一次单击时旋转?

How to make the arrow point down when card is closed and to rotate on first click without jquery or javascript?

我有一个设置,但不知道如何让箭头工作

我这样做是为了让它旋转,如果打开一张卡片,一切都很好,但是当卡片关闭时,第一次点击它什么也没做……我想这没问题。

但是如何设置卡片关闭时箭头指向下方呢?

https://jsfiddle.net/b7msn10u/12/

<div class="container">

  <div class="row">
    <div class="col-md-12">
      <div class="card">
        <div  class="card-header">
          <h5 class="mb-0">
            <a data-toggle="collapse" href="#collapse1" aria-expanded="true" aria-controls="collapse-example">
                <i class="fa fa-chevron-up pull-right"></i>
                On first click icon doesn't rotate 
            </a>
        </h5>
        </div>
        <div id="collapse1" class="collapse" aria-labelledby="heading-example">
          <div class="card-block">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda itaque asperiores sapiente aut debitis nulla accusantium odit voluptate minima eos quia animi numquam quo atque, saepe autem tempora, reprehenderit facere?
          </div>
        </div>
      </div>
    </div> 
  </div>

    <div class="row mt-3">
    <div class="col-md-12">
      <div class="card">
        <div class="card-header">
          <h5 class="mb-0">
            <a data-toggle="collapse" href="#collapse2" aria-expanded="true" aria-controls="collapse-example">
                <i class="fa fa-chevron-up pull-right"></i>
                Here it does rotate on first click
            </a>
        </h5>
        </div>
        <div id="collapse2" class="collapse show" aria-labelledby="heading-example">
          <div class="card-block p-3">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda itaque asperiores sapiente aut debitis nulla accusantium odit voluptate minima eos quia animi numquam quo atque, saepe autem tempora, reprehenderit facere?
          </div>
        </div>
      </div>
    </div> 
  </div>
  <h3 class="mt-3">How to make the arrow point down when card is closed and to rotate on first click?</h3>
</div>

A collapsed 元素很难设置;除了 all the other attributes - 可以消化到这个主要属性差异:


关闭(折叠)

要制作一对(按钮 + 元素)"closed" (折叠) 您还需要以下属性:

按钮

  • class="collapsed" 你错过了这个 class
  • aria-expanded="false" 设置为 false,因为它被折叠了...
  • aria-controls="collapse1" 将此修复为正确的选择器

元素

  • class="collapse"

并使用向上箭头,但使用 .collapsed 作为参考 CSS 旋转 180°

.card-header .fa-chevron-up {
  transition: transform 0.3s ease-in-out;
}
.card-header .collapsed .fa-chevron-up {
  transform: rotate(180deg);
}

打开(未折叠)

要制作一对(按钮 + 元素)"open" (未折叠) 您需要:

按钮

  • class="" 不需要 class
  • aria-expanded="true" 设为真

元素

  • class="collapse show"

示例:

.card-header .fa-chevron-up {
  transition: transform 0.3s ease-in-out;
}
.card-header .collapsed .fa-chevron-up {
  transform: rotate(180deg);
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<br />
<div class="container">

  <div class="row">
    <div class="col-md-12">
      <div class="card">
        <div  class="card-header">
          <h5 class="mb-0">
            <a class="collapsed" data-toggle="collapse" href="#collapse1" aria-expanded="false" aria-controls="collapse1">
              <i class="fa fa-chevron-up pull-right"></i>
              On first click icon doesn't rotate 
            </a>
          </h5>
        </div>
        <div id="collapse1" class="collapse" aria-labelledby="heading-example">
          <div class="card-block">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda itaque asperiores sapiente aut debitis nulla accusantium odit voluptate minima eos quia animi numquam quo atque, saepe autem tempora, reprehenderit facere?
          </div>
        </div>
      </div>
    </div> 
  </div>

  <div class="row mt-3">
    <div class="col-md-12">
      <div class="card">
        <div class="card-header">
          <h5 class="mb-0">
            <a data-toggle="collapse" href="#collapse2" aria-expanded="true" aria-controls="collapse2">
              <i class="fa fa-chevron-up pull-right"></i>
              Here it does rotate on first click
            </a>
          </h5>
        </div>
        <div id="collapse2" class="collapse show" aria-labelledby="heading-example">
          <div class="card-block p-3">
            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda itaque asperiores sapiente aut debitis nulla accusantium odit voluptate minima eos quia animi numquam quo atque, saepe autem tempora, reprehenderit facere?
          </div>
        </div>
      </div>
    </div> 
  </div>
  <h3 class="mt-3">How to make the arrow point down when card is closed and to rotate on first click?</h3>
</div>

Basically it's a logic mess. No wonder many people get confused. But that's Bootstrap. ...