ຂ້າມໄປຫາເນື້ອຫາຕົ້ນຕໍ ຂ້າມໄປຫາການນຳທາງເອກະສານ
Check
in English

ຫຍໍ້ລົງ

ສະຫຼັບການເບິ່ງເຫັນເນື້ອຫາໃນທົ່ວໂຄງການຂອງທ່ານດ້ວຍບາງຊັ້ນຮຽນ ແລະປລັກອິນ JavaScript ຂອງພວກເຮົາ.

ມັນເຮັດວຽກແນວໃດ

plugin JavaScript ຫຍໍ້ແມ່ນໃຊ້ເພື່ອສະແດງ ແລະເຊື່ອງເນື້ອຫາ. ປຸ່ມ ຫຼືຈຸດຍຶດຖືກໃຊ້ເປັນຕົວກະຕຸ້ນທີ່ຕັ້ງຢູ່ໃນອົງປະກອບສະເພາະທີ່ທ່ານສະຫຼັບ. ການຫຍໍ້ອົງປະກອບໃດໜຶ່ງຈະເຄື່ອນໄຫວ heightຈາກຄ່າປັດຈຸບັນຂອງມັນມາເປັນ 0. ເນື່ອງຈາກ CSS ຈັດການກັບພາບເຄື່ອນໄຫວແນວໃດ, ທ່ານບໍ່ສາມາດໃຊ້ ອົງ paddingປະ .collapseກອບໃດຫນຶ່ງ. ແທນທີ່ຈະ, ໃຊ້ຫ້ອງຮຽນເປັນອົງປະກອບຫໍ່ເອກະລາດ.

ຜົນກະທົບຂອງພາບເຄື່ອນໄຫວຂອງອົງປະກອບນີ້ແມ່ນຂຶ້ນກັບການ prefers-reduced-motionສອບຖາມສື່. ເບິ່ງ ພາກສ່ວນການເຄື່ອນໄຫວທີ່ຫຼຸດລົງຂອງເອກະສານການຊ່ວຍເຂົ້າເຖິງຂອງພວກເຮົາ .

ຕົວຢ່າງ

ຄລິກປຸ່ມລຸ່ມນີ້ເພື່ອສະແດງ ແລະເຊື່ອງອົງປະກອບອື່ນຜ່ານການປ່ຽນແປງຊັ້ນຮຽນ:

  • .collapseເຊື່ອງເນື້ອຫາ
  • .collapsingຖືກນໍາໃຊ້ໃນລະຫວ່າງການຫັນປ່ຽນ
  • .collapse.showສະ​ແດງ​ໃຫ້​ເຫັນ​ເນື້ອ​ໃນ​

ໂດຍທົ່ວໄປ, ພວກເຮົາແນະນໍາໃຫ້ໃຊ້ປຸ່ມທີ່ມີ data-bs-targetຄຸນລັກສະນະ. ໃນຂະນະທີ່ບໍ່ໄດ້ແນະນໍາຈາກທັດສະນະ semantic, ທ່ານຍັງສາມາດນໍາໃຊ້ການເຊື່ອມຕໍ່ກັບ hrefຄຸນລັກສະນະ (ແລະ a role="button"). ໃນທັງສອງກໍລະນີ, data-bs-toggle="collapse"ຕ້ອງການ.

Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
html
<p>
  <a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Link with href
  </a>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
    Button with data-bs-target
  </button>
</p>
<div class="collapse" id="collapseExample">
  <div class="card card-body">
    Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
  </div>
</div>

ລວງນອນ

plugin ຍຸບຍັງສະຫນັບສະຫນູນການລົ້ມລົງຕາມລວງນອນ. ເພີ່ມ .collapse-horizontalຫ້ອງຮຽນຕົວແກ້ໄຂເພື່ອປ່ຽນ widthແທນ heightແລະຕັ້ງ a widthໃນອົງປະກອບລູກທັນທີ. ຮູ້ສຶກບໍ່ເສຍຄ່າທີ່ຈະຂຽນ Sass ຂອງທ່ານເອງ, ໃຊ້ຮູບແບບ inline, ຫຼືໃຊ້ ປະໂຫຍດຄວາມກວ້າງ ຂອງພວກເຮົາ .

ກະລຸນາສັງເກດວ່າໃນຂະນະທີ່ຕົວຢ່າງຂ້າງລຸ່ມນີ້ມີ min-heightຊຸດເພື່ອຫຼີກເວັ້ນການ repaint ຫຼາຍເກີນໄປໃນເອກະສານຂອງພວກເຮົາ, ນີ້ບໍ່ຈໍາເປັນຢ່າງຊັດເຈນ. ຕ້ອງການພຽງແຕ່ widthອົງປະກອບຂອງເດັກນ້ອຍເທົ່ານັ້ນ.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
html
<p>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
    Toggle width collapse
  </button>
</p>
<div style="min-height: 120px;">
  <div class="collapse collapse-horizontal" id="collapseWidthExample">
    <div class="card card-body" style="width: 300px;">
      This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
    </div>
  </div>
</div>

ຫຼາຍເປົ້າໝາຍ

A <button>ຫຼື <a>ສາມາດສະແດງແລະຊ່ອນຫຼາຍອົງປະກອບໂດຍການອ້າງອິງພວກມັນດ້ວຍຕົວເລືອກໃນ hrefຫຼື data-bs-targetຄຸນລັກສະນະຂອງມັນ. ຫຼາຍ <button>ຫຼື <a>ສາມາດສະແດງ ແລະຊ່ອນອົງປະກອບໃດໜຶ່ງໄດ້ ຖ້າພວກເຂົາແຕ່ລະອ້າງອີງມັນດ້ວຍ ຄຸນສົມບັດ hrefຫຼື data-bs-targetຄຸນສົມບັດ ຂອງເຂົາເຈົ້າ

Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
html
<p>
  <a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</p>
<div class="row">
  <div class="col">
    <div class="collapse multi-collapse" id="multiCollapseExample1">
      <div class="card card-body">
        Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
      </div>
    </div>
  </div>
  <div class="col">
    <div class="collapse multi-collapse" id="multiCollapseExample2">
      <div class="card card-body">
        Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
      </div>
    </div>
  </div>
</div>

ການເຂົ້າເຖິງ

ໃຫ້ແນ່ໃຈວ່າເພີ່ມ aria-expandedໃສ່ອົງປະກອບຄວບຄຸມ. ຄຸນສົມບັດນີ້ບົ່ງບອກເຖິງສະຖານະປັດຈຸບັນຂອງອົງປະກອບທີ່ຫຍໍ້ລົງຢ່າງຈະແຈ້ງທີ່ຜູກມັດກັບການຄວບຄຸມເພື່ອກວດສອບຜູ້ອ່ານ ແລະເຕັກໂນໂລຊີການຊ່ວຍເຫຼືອທີ່ຄ້າຍຄືກັນ. ຖ້າອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້ຖືກປິດໂດຍຄ່າເລີ່ມຕົ້ນ, ຄຸນລັກສະນະຂອງອົງປະກອບຄວບຄຸມຄວນມີມູນຄ່າ aria-expanded="false". ຖ້າທ່ານໄດ້ຕັ້ງອົງປະກອບທີ່ສາມາດພັບໄດ້ໃຫ້ເປີດເປັນຄ່າເລີ່ມຕົ້ນໂດຍໃຊ້ showຊັ້ນ, ໃຫ້ຕັ້ງ aria-expanded="true"ໃສ່ຕົວຄວບຄຸມແທນ. ປັ໊ກອິນຈະສະຫຼັບຄຸນລັກສະນະນີ້ໂດຍອັດຕະໂນມັດໃນການຄວບຄຸມໂດຍອີງໃສ່ວ່າອົງປະກອບທີ່ພັບໄດ້ໄດ້ຖືກເປີດຫຼືປິດຫຼືບໍ່ (ຜ່ານ JavaScript, ຫຼືຍ້ອນວ່າຜູ້ໃຊ້ກະຕຸ້ນອົງປະກອບຄວບຄຸມອື່ນທີ່ເຊື່ອມໂຍງກັບອົງປະກອບທີ່ຍຸບໄດ້ຄືກັນ). ຖ້າອົງປະກອບ HTML ຂອງອົງປະກອບຄວບຄຸມບໍ່ແມ່ນປຸ່ມ (ຕົວຢ່າງ, <a>ຫຼື <div>), ຄຸນລັກສະນະrole="button"ຄວນຈະຖືກເພີ່ມເຂົ້າໃນອົງປະກອບ.

ຖ້າອົງປະກອບຄວບຄຸມຂອງເຈົ້າກໍາລັງຕັ້ງເປົ້າໝາຍໃສ່ອົງປະກອບທີ່ພັບໄດ້ອັນດຽວ - ເຊັ່ນ: data-bs-targetຄຸນລັກສະນະທີ່ຊີ້ໄປຫາ idຕົວເລືອກ - ທ່ານຄວນເພີ່ມ aria-controlsຄຸນສົມບັດໃຫ້ກັບອົງປະກອບຄວບຄຸມ, ເຊິ່ງປະກອບດ້ວຍ idອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້. ເຄື່ອງອ່ານຫນ້າຈໍທີ່ທັນສະໄຫມແລະເຕັກໂນໂລຢີການຊ່ວຍເຫຼືອທີ່ຄ້າຍຄືກັນໃຊ້ຄຸນລັກສະນະນີ້ເພື່ອໃຫ້ຜູ້ໃຊ້ມີທາງລັດເພີ່ມເຕີມເພື່ອນໍາທາງໂດຍກົງໄປຫາອົງປະກອບທີ່ລົ້ມລົງເອງ.

ໃຫ້ສັງເກດວ່າການປະຕິບັດໃນປະຈຸບັນຂອງ Bootstrap ບໍ່ໄດ້ກວມເອົາການ ໂຕ້ຕອບຂອງແປ້ນພິມ ທາງເລືອກ ຕ່າງໆທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ຮູບແບບ accordion ຄູ່ມື ARIA Authoring Practices - ທ່ານຈະຕ້ອງລວມເອົາສິ່ງເຫຼົ່ານີ້ດ້ວຍຕົນເອງກັບ JavaScript ແບບກໍານົດເອງ.

ຊາສ

ຕົວແປ

$transition-collapse:         height .35s ease;
$transition-collapse-width:   width .35s ease;

ຫ້ອງຮຽນ

ຫຍໍ້ຊັ້ນການຫັນປ່ຽນສາມາດພົບໄດ້ໃນ scss/_transitions.scssຍ້ອນວ່າສິ່ງເຫຼົ່ານີ້ຖືກແບ່ງປັນໃນທົ່ວອົງປະກອບຫຼາຍອັນ (ຫຍໍ້ລົງ ແລະສຽງເພງ).

.collapse {
  &:not(.show) {
    display: none;
  }
}

.collapsing {
  height: 0;
  overflow: hidden;
  @include transition($transition-collapse);

  &.collapse-horizontal {
    width: 0;
    height: auto;
    @include transition($transition-collapse-width);
  }
}

ການ​ນໍາ​ໃຊ້

ປັ໊ກອິນທີ່ລົ້ມລົງໃຊ້ສອງສາມຊັ້ນເພື່ອຈັດການກັບການຍົກຫນັກ:

  • .collapseເຊື່ອງເນື້ອຫາ
  • .collapse.showສະ​ແດງ​ໃຫ້​ເຫັນ​ເນື້ອ​ໃນ​
  • .collapsingຈະຖືກເພີ່ມເມື່ອການປ່ຽນແປງເລີ່ມຕົ້ນ, ແລະເອົາອອກເມື່ອມັນສໍາເລັດ

ຫ້ອງຮຽນເຫຼົ່ານີ້ສາມາດພົບເຫັນຢູ່ໃນ _transitions.scss.

ຜ່ານຄຸນລັກສະນະຂໍ້ມູນ

ພຽງ​ແຕ່​ເພີ່ມ data-bs-toggle="collapse"​ແລະ a data-bs-targetກັບ​ອົງ​ປະ​ກອບ​ທີ່​ຈະ​ກໍາ​ນົດ​ອັດ​ຕະ​ໂນ​ມັດ​ການ​ຄວບ​ຄຸມ​ຂອງ​ຫນຶ່ງ​ຫຼື​ຫຼາຍ​ອົງ​ປະ​ກອບ​ທີ່​ຍຸບ​ໄດ້​. ຄຸນລັກ ສະ data-bs-targetນະຍອມຮັບຕົວເລືອກ CSS ເພື່ອໃຊ້ການຫຍໍ້ລົງ. ໃຫ້ແນ່ໃຈວ່າຈະເພີ່ມຊັ້ນ collapseເຂົ້າໄປໃນອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້. ຖ້າທ່ານຕ້ອງການໃຫ້ມັນເປີດໃນຕອນຕົ້ນ, ໃຫ້ເພີ່ມຊັ້ນຮຽນເພີ່ມເຕີມ show.

ເພື່ອເພີ່ມການຈັດການກຸ່ມທີ່ຄ້າຍກັບ accordion ໃສ່ພື້ນທີ່ທີ່ພັບໄດ້, ເພີ່ມຄຸນສົມບັດຂໍ້ມູນ data-bs-parent="#selector". ອ້າງອີງໃສ່ ຫນ້າ accordion ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

ຜ່ານ JavaScript

ເປີດໃຊ້ດ້ວຍຕົນເອງດ້ວຍ:

const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))

ທາງເລືອກ

ເນື່ອງຈາກທາງເລືອກສາມາດຖືກສົ່ງຜ່ານຄຸນລັກສະນະຂໍ້ມູນຫຼື JavaScript, ທ່ານສາມາດເພີ່ມຊື່ທາງເລືອກໃສ່ data-bs-, ດັ່ງໃນ data-bs-animation="{value}". ໃຫ້ແນ່ໃຈວ່າປ່ຽນປະເພດກໍລະນີຂອງຊື່ທາງເລືອກຈາກ " camelCase " ເປັນ " kebab-case " ເມື່ອຖ່າຍທອດທາງເລືອກຜ່ານຄຸນລັກສະນະຂໍ້ມູນ. ຕົວຢ່າງ, ໃຊ້ data-bs-custom-class="beautifier"ແທນ data-bs-customClass="beautifier".

ໃນຖານະເປັນຂອງ Bootstrap 5.2.0, ອົງປະກອບທັງຫມົດສະຫນັບສະຫນູນ ຄຸນລັກສະນະຂໍ້ມູນທີ່ສະຫງວນໄວ້ສໍາ ລັບ ການທົດລອງdata-bs-config ທີ່ສາມາດຈັດການຕັ້ງຄ່າອົງປະກອບງ່າຍດາຍເປັນ JSON string. ເມື່ອອົງປະກອບມີ data-bs-config='{"delay":0, "title":123}'ແລະ data-bs-title="456"ຄຸນລັກສະນະ, ຄ່າສຸດທ້າຍ titleຈະເປັນ 456ແລະຄຸນລັກສະນະຂອງຂໍ້ມູນແຍກຕ່າງຫາກຈະ override ຄ່າທີ່ໃຫ້ຢູ່ໃນ data-bs-config. ນອກຈາກນັ້ນ, ຄຸນລັກສະນະຂໍ້ມູນທີ່ມີຢູ່ແມ່ນສາມາດຈັດວາງຄ່າ JSON ເຊັ່ນ data-bs-delay='{"show":0,"hide":150}'.

ຊື່ ປະເພດ ຄ່າເລີ່ມຕົ້ນ ລາຍລະອຽດ
parent ຕົວເລືອກ, ອົງປະກອບ DOM null ຖ້າມີການໃຫ້ພໍ່ແມ່, ຫຼັງຈາກນັ້ນອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້ທັງຫມົດພາຍໃຕ້ພໍ່ແມ່ທີ່ລະບຸໄວ້ຈະຖືກປິດເມື່ອລາຍການທີ່ຫຍໍ້ໄດ້ນີ້ຖືກສະແດງ. (ຄ້າຍຄືກັນກັບພຶດຕິກໍາ accordion ພື້ນເມືອງ - ນີ້ແມ່ນຂຶ້ນກັບ cardຫ້ອງຮຽນ). ຄຸນລັກສະນະຕ້ອງຖືກຕັ້ງຢູ່ເທິງພື້ນທີ່ທີ່ຍຸບໄດ້.
toggle ບູລີນ true ສະຫຼັບອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້ໃນຄຳເຊີນ.

ວິທີການ

ວິ​ທີ​ການ asynchronous ແລະ​ການ​ຫັນ​ປ່ຽນ​

ວິທີການ API ທັງໝົດແມ່ນ asynchronous ແລະເລີ່ມການ ຫັນປ່ຽນ . ພວກເຂົາກັບຄືນໄປຫາຜູ້ໂທທັນທີທີ່ການຫັນປ່ຽນເລີ່ມຕົ້ນແຕ່ ກ່ອນທີ່ມັນຈະສິ້ນສຸດລົງ . ນອກຈາກນັ້ນ, ການໂທຫາວິທີການກ່ຽວກັບ ອົງປະກອບຂອງການປ່ຽນແປງຈະຖືກລະເລີຍ .

ເບິ່ງເອກະສານ JavaScript ຂອງພວກເຮົາສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ .

ເປີດໃຊ້ເນື້ອຫາຂອງທ່ານເປັນອົງປະກອບທີ່ຫຍໍ້ລົງໄດ້. ຍອມຮັບທາງເລືອກທີ່ເປັນທາງເລືອກ object.

ທ່ານ​ສາ​ມາດ​ສ້າງ​ຕົວ​ຢ່າງ​ພັງ​ລົງ​ກັບ​ຜູ້​ກໍ່​ສ້າງ​, ສໍາ​ລັບ​ການ​ຍົກ​ຕົວ​ຢ່າງ​:

const bsCollapse = new bootstrap.Collapse('#myCollapse', {
  toggle: false
})
ວິທີການ ລາຍລະອຽດ
dispose ທໍາລາຍການຍຸບຕົວຂອງອົງປະກອບ. (ລຶບຂໍ້ມູນທີ່ເກັບໄວ້ໃນອົງປະກອບ DOM)
getInstance ວິ​ທີ​ການ​ຄົງ​ທີ່​ທີ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ທ່ານ​ໄດ້​ຮັບ​ຕົວ​ຢ່າງ​ພັງ​ລົງ​ທີ່​ກ່ຽວ​ຂ້ອງ​ກັບ​ອົງ​ປະ​ກອບ DOM​, ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້​ມັນ​ເຊັ່ນ​ນີ້​: bootstrap.Collapse.getInstance(element).
getOrCreateInstance Static method which returns a collapse instance associated to a DOM element or create a new one in case it wasn’t initialized. You can use it like this: bootstrap.Collapse.getOrCreateInstance(element).
hide Hides a collapsible element. Returns to the caller before the collapsible element has actually been hidden (e.g., before the hidden.bs.collapse event occurs).
show Shows a collapsible element. Returns to the caller before the collapsible element has actually been shown (e.g., before the shown.bs.collapse event occurs).
toggle Toggles a collapsible element to shown or hidden. Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the shown.bs.collapse or hidden.bs.collapse event occurs).

Events

ຫ້ອງຮຽນຍຸບຂອງ Bootstrap ເປີດເຜີຍເຫດການບໍ່ຫຼາຍປານໃດສໍາລັບການເຊື່ອມໂຍງກັບຫນ້າທີ່ການລົ້ມລົງ.

ປະເພດເຫດການ ລາຍລະອຽດ
hide.bs.collapse ເຫດການນີ້ຖືກຍິງທັນທີເມື່ອ hideວິທີການໄດ້ຖືກເອີ້ນ.
hidden.bs.collapse ເຫດການນີ້ຖືກດັບໄຟເມື່ອອົງປະກອບຫຍໍ້ທໍ້ຖືກເຊື່ອງໄວ້ຈາກຜູ້ໃຊ້ (ຈະລໍຖ້າການປ່ຽນ CSS ສໍາເລັດ).
show.bs.collapse ເຫດການນີ້ໄຟໄຫມ້ທັນທີເມື່ອ showວິທີການຕົວຢ່າງຖືກເອີ້ນ.
shown.bs.collapse ເຫດການນີ້ຖືກດັບໄຟເມື່ອອົງປະກອບການຫຍໍ້ລົງໄດ້ຖືກເຮັດໃຫ້ຜູ້ໃຊ້ເຫັນໄດ້ (ຈະລໍຖ້າໃຫ້ CSS transitions ສໍາເລັດ).
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
  // do something...
})