Bootstrap 4手风琴不会滚动到顶部

时间:2019-10-10 06:52:37

标签: javascript jquery bootstrap-4

我写了一个Javascript,当用户单击以打开手风琴卡时,它可以将其滚动到顶部。在下面,您可以找到一个Bootstrap 4手风琴和Javascript的示例:

$('.card').on('shown.bs.collapse', function(e) {
    var $card = $(this).closest('.card');
    setTimeout(function(){
    $('html,body').animate({
      scrollTop: $card.offset().top
    }, 500); //animation speed
  }, 500); //execution timeout
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" >



<div class="container accordion p-0" id="accordionKompakt">
  <div class="card border-0" id="Kompakt1">
    <div class="card-header border-bottom-0 p-0 m-0" id="headingKompakt1">
      <button class="btn btn-link btn-block collapsed text-left m-0 pt-2 pb-2" type="button" data-toggle="collapse" data-target="#collapseKompakt1" aria-expanded="false" aria-controls="collapseKompakt1">
        <table class="m-0 p-0" width="100%">
          <tr>
            <td width="95%">
              <p class="m-1">
                <b class="text-dark">Erlangung der Gehfähigkeit bei nicht gehfähigen Patienten</b>
                <br>
                <small class="text-secondary nrow-flag">5 Empfehlungen</small>
              </p>
            </td>
            <td class="align-middle" width="5%">
              <span class="fa collapse-indicator text-right text-secondary"></span>
            </td>
          </tr>
        </table>
        <div class="arrow-up m-0 p-0"></div>
      </button>
    </div>
  </div>
  <div class="collapse border-top bg-light" id="collapseKompakt1" aria-labelledby="headingKompakt1" data-parent="#accordionKompakt">
    <div class="card-body m-0 p-2">
      <div class="kompakt-box p-0 m-0">
        <table class="p-1 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Subakute Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining, falls verfügbar und realisierbar unter Einschluss des Gangtrainers</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining unter Einschlussdes Laufbands oder des Lokomaten</p>
              <p class="m-0 pb-1 pt-1">&#8226; Zyklische Mehrkanalstimulation zur Erzeugung gehähnlicher Beinbewegungen des paretischen Beines im Liegen</p>
              <p class="m-0 pb-1 pt-1">&#8226; Zusätzliche Elektroakupunktur</p>
              <p class="m-0 pb-1 pt-1">&#8226; <u>Für Patienten mit Neglect:</u> Spezifisches Neglect-Training</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">

            </td>
          </tr>
        </table>
        <table class="p-1 mt-2 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Chronische Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1">Keine Einträge</p>
            </td>
          </tr>
        </table>
      </div>
    </div>
  </div>


  <div class="card border-0" id="Kompakt2">
    <div class="card-header border-top border-bottom-0 p-0 m-0" id="headingKompakt2">
      <button class="btn btn-link btn-block collapsed text-left m-0 pt-2 pb-2" type="button" data-toggle="collapse" data-target="#collapseKompakt2" aria-expanded="false" aria-controls="collapseKompakt2">
        <table class="m-0 p-0" width="100%">
          <tr>
            <td width="95%">
              <p class="m-1">
                <b class="text-dark">Verbesserung der Gehfähigkeit bei (eingeschränkt) gehfähigen Patienten</b>
                <br>
                <small class="text-secondary">8 Empfehlungen</small>
              </p>
            </td>
            <td class="align-middle" width="5%">
              <span class="fa collapse-indicator text-right text-secondary"></span>
            </td>
          </tr>
        </table>
        <div class="arrow-up m-0 p-0"></div>
      </button>
    </div>
  </div>
  <div class="collapse border-top bg-light" id="collapseKompakt2" aria-labelledby="headingKompakt2" data-parent="#accordionKompakt">
    <div class="card-body m-0 p-2">
      <div class="kompakt-box p-0 m-0">
        <table class="p-1 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Subakute Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining: konventionell oder unter Einschluss des Laufbands (möglichst progressiv) </p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Aufgabenbezogenes Training mit Bewegungsvorstellung und</p>
              <p class="m-0 pb-1 pt-1">&#8226; Nutzung von Gehhilfen</p>
              <p class="m-0 pb-1 pt-1">&#8226; Kombinationstherapie aus Gangtrainer mit funktioneller Elektrostimulation</p>
              <p class="m-0 pb-1 pt-1">&#8226; Nadelakupunktur inklusive Elektroakupunktur während intensiver Rehabilitation</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">

            </td>
          </tr>
        </table>
        <table class="p-1 mt-2 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Chronische Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Für Patienten mit spastischer Equinovarus-Deformität: Injektion von Botulinumtoxin zur Reduktion des Hilfsmittelgebrauchs</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Unterstützung eines Laufbandtrainings mit VR</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">
              <p class="m-0 pb-1 pt-1">&#8226; Für Patienten mit spastischer Equinovarus-Deformität: Thermokoagulation des N. tibialis</p>
            </td>
          </tr>
        </table>
      </div>
    </div>
  </div>

</div>


<br><br><br>

有人可以帮忙吗?当我将其与其他页面上具有相同结构的Bootstrap 4手风琴结合使用时,该脚本可以很好地工作。我在这里找不到问题所在...

1 个答案:

答案 0 :(得分:0)

事件为show.bs.collapse,您应该听主要的手风琴元素#accordionKompakt。要获得点击的卡片,请使用$(e.target).prev('.card');

$('#accordionKompakt').on('show.bs.collapse', function(e) {
    var $card = $(e.target).prev('.card');
    setTimeout(function(){
    $('html,body').animate({
      scrollTop: $card.offset().top
    }, 500); //animation speed
  }, 500); //execution timeout
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" >



<div class="container accordion p-0" id="accordionKompakt">
  <div class="card border-0" id="Kompakt1">
    <div class="card-header border-bottom-0 p-0 m-0" id="headingKompakt1">
      <button class="btn btn-link btn-block collapsed text-left m-0 pt-2 pb-2" type="button" data-toggle="collapse" data-target="#collapseKompakt1" aria-expanded="false" aria-controls="collapseKompakt1">
        <table class="m-0 p-0" width="100%">
          <tr>
            <td width="95%">
              <p class="m-1">
                <b class="text-dark">Erlangung der Gehfähigkeit bei nicht gehfähigen Patienten</b>
                <br>
                <small class="text-secondary nrow-flag">5 Empfehlungen</small>
              </p>
            </td>
            <td class="align-middle" width="5%">
              <span class="fa collapse-indicator text-right text-secondary"></span>
            </td>
          </tr>
        </table>
        <div class="arrow-up m-0 p-0"></div>
      </button>
    </div>
  </div>
  <div class="collapse border-top bg-light" id="collapseKompakt1" aria-labelledby="headingKompakt1" data-parent="#accordionKompakt">
    <div class="card-body m-0 p-2">
      <div class="kompakt-box p-0 m-0">
        <table class="p-1 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Subakute Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining, falls verfügbar und realisierbar unter Einschluss des Gangtrainers</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining unter Einschlussdes Laufbands oder des Lokomaten</p>
              <p class="m-0 pb-1 pt-1">&#8226; Zyklische Mehrkanalstimulation zur Erzeugung gehähnlicher Beinbewegungen des paretischen Beines im Liegen</p>
              <p class="m-0 pb-1 pt-1">&#8226; Zusätzliche Elektroakupunktur</p>
              <p class="m-0 pb-1 pt-1">&#8226; <u>Für Patienten mit Neglect:</u> Spezifisches Neglect-Training</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">

            </td>
          </tr>
        </table>
        <table class="p-1 mt-2 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Chronische Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1">Keine Einträge</p>
            </td>
          </tr>
        </table>
      </div>
    </div>
  </div>


  <div class="card border-0" id="Kompakt2">
    <div class="card-header border-top border-bottom-0 p-0 m-0" id="headingKompakt2">
      <button class="btn btn-link btn-block collapsed text-left m-0 pt-2 pb-2" type="button" data-toggle="collapse" data-target="#collapseKompakt2" aria-expanded="false" aria-controls="collapseKompakt2">
        <table class="m-0 p-0" width="100%">
          <tr>
            <td width="95%">
              <p class="m-1">
                <b class="text-dark">Verbesserung der Gehfähigkeit bei (eingeschränkt) gehfähigen Patienten</b>
                <br>
                <small class="text-secondary">8 Empfehlungen</small>
              </p>
            </td>
            <td class="align-middle" width="5%">
              <span class="fa collapse-indicator text-right text-secondary"></span>
            </td>
          </tr>
        </table>
        <div class="arrow-up m-0 p-0"></div>
      </button>
    </div>
  </div>
  <div class="collapse border-top bg-light" id="collapseKompakt2" aria-labelledby="headingKompakt2" data-parent="#accordionKompakt">
    <div class="card-body m-0 p-2">
      <div class="kompakt-box p-0 m-0">
        <table class="p-1 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Subakute Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Intensives Gehtraining: konventionell oder unter Einschluss des Laufbands (möglichst progressiv) </p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Aufgabenbezogenes Training mit Bewegungsvorstellung und</p>
              <p class="m-0 pb-1 pt-1">&#8226; Nutzung von Gehhilfen</p>
              <p class="m-0 pb-1 pt-1">&#8226; Kombinationstherapie aus Gangtrainer mit funktioneller Elektrostimulation</p>
              <p class="m-0 pb-1 pt-1">&#8226; Nadelakupunktur inklusive Elektroakupunktur während intensiver Rehabilitation</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">

            </td>
          </tr>
        </table>
        <table class="p-1 mt-2 bg-white" width="100%">
          <tr>
            <td class="border p-1 pl-2 pr-2" colspan="2">
              <p class="m-0 pb-1 pt-1"><b>Chronische Phase</b></p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">A (soll)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">

            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">B (sollte)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
                <p class="m-0 pb-1 pt-1">&#8226; Für Patienten mit spastischer Equinovarus-Deformität: Injektion von Botulinumtoxin zur Reduktion des Hilfsmittelgebrauchs</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">0 (kann)</p>
            </td>
            <td class="border align-top p-1 pl-2 pr-2">
              <p class="m-0 pb-1 pt-1">&#8226; Unterstützung eines Laufbandtrainings mit VR</p>
            </td>
          </tr>
          <tr>
            <td class="border align-top p-1 pl-2 pr-2" width="100">
              <p class="m-0 pb-1 pt-1">-B (sollte nicht)</p>
            </td>
            <td class="border p-1">
              <p class="m-0 pb-1 pt-1">&#8226; Für Patienten mit spastischer Equinovarus-Deformität: Thermokoagulation des N. tibialis</p>
            </td>
          </tr>
        </table>
      </div>
    </div>
  </div>

</div>


<br><br><br>