Μετάβαση στο κύριο περιεχόμενο Μετάβαση στην πλοήγηση εγγράφων
in English

Κατάρρευση

Εναλλάξτε την ορατότητα του περιεχομένου σε όλο το έργο σας με μερικές κλάσεις και τις προσθήκες JavaScript.

Πως δουλεύει

Η προσθήκη σύμπτυξης JavaScript χρησιμοποιείται για την εμφάνιση και απόκρυψη περιεχομένου. Τα κουμπιά ή οι άγκυρες χρησιμοποιούνται ως ενεργοποιητές που αντιστοιχίζονται σε συγκεκριμένα στοιχεία που αλλάζετε. Η σύμπτυξη ενός στοιχείου θα κινήσει το heightαπό την τρέχουσα τιμή του σε 0. Δεδομένου του τρόπου με τον οποίο το CSS χειρίζεται κινούμενα σχέδια, δεν μπορείτε να χρησιμοποιήσετε paddingσε ένα .collapseστοιχείο. Αντίθετα, χρησιμοποιήστε την κλάση ως ανεξάρτητο στοιχείο αναδίπλωσης.

Το εφέ κίνησης αυτού του στοιχείου εξαρτάται από το prefers-reduced-motionερώτημα πολυμέσων. Δείτε την ενότητα μειωμένης κίνησης της τεκμηρίωσης προσβασιμότητας .

Παράδειγμα

Κάντε κλικ στα κουμπιά παρακάτω για εμφάνιση και απόκρυψη ενός άλλου στοιχείου μέσω αλλαγών κλάσης:

  • .collapseκρύβει περιεχόμενο
  • .collapsingεφαρμόζεται κατά τις μεταβάσεις
  • .collapse.showεμφανίζει περιεχόμενο

Γενικά, συνιστούμε να χρησιμοποιήσετε ένα κουμπί με το data-bs-targetχαρακτηριστικό. Αν και δεν συνιστάται από σημασιολογική άποψη, μπορείτε επίσης να χρησιμοποιήσετε έναν σύνδεσμο με το 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.
<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>

Πολλαπλοί στόχοι

Το 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.
<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 του στοιχείου ελέγχου δεν είναι κουμπί (π.χ. an <a>ή <div>), το χαρακτηριστικόrole="button"πρέπει να προστεθεί στο στοιχείο.

Εάν το στοιχείο ελέγχου σας στοχεύει ένα μεμονωμένο πτυσσόμενο στοιχείο – δηλαδή το data-bs-targetχαρακτηριστικό δείχνει σε έναν idεπιλογέα – θα πρέπει να προσθέσετε το aria-controlsχαρακτηριστικό στο στοιχείο ελέγχου, που περιέχει το idστοιχείο του πτυσσόμενου στοιχείου. Οι σύγχρονες συσκευές ανάγνωσης οθόνης και παρόμοιες υποστηρικτικές τεχνολογίες χρησιμοποιούν αυτό το χαρακτηριστικό για να παρέχουν στους χρήστες πρόσθετες συντομεύσεις για την απευθείας πλοήγηση στο ίδιο το πτυσσόμενο στοιχείο.

Σημειώστε ότι η τρέχουσα υλοποίηση του Bootstrap δεν καλύπτει τις διάφορες προαιρετικές αλληλεπιδράσεις πληκτρολογίου που περιγράφονται στο μοτίβο ακορντεόν WAI-ARIA Authoring Practices 1.1 - θα χρειαστεί να τις συμπεριλάβετε μόνοι σας με προσαρμοσμένη JavaScript.

Sass

Μεταβλητές

$transition-collapse:         height .35s ease;

Τάξεις

Οι τάξεις μετάβασης σύμπτυξης μπορούν να βρεθούν στο scss/_transitions.scssκαθώς μοιράζονται σε πολλαπλά στοιχεία (σύμπτυξη και ακορντεόν).

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

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

Χρήση

Το πρόσθετο κατάρρευσης χρησιμοποιεί μερικές κατηγορίες για να χειριστεί τη βαριά ανύψωση:

  • .collapseκρύβει το περιεχόμενο
  • .collapse.showδείχνει το περιεχόμενο
  • .collapsingπροστίθεται όταν ξεκινά η μετάβαση και αφαιρείται όταν τελειώσει

Αυτές οι τάξεις βρίσκονται στο _transitions.scss.

Μέσω χαρακτηριστικών δεδομένων

Απλώς προσθέστε data-bs-toggle="collapse"και a data-bs-targetστο στοιχείο για να εκχωρήσετε αυτόματα τον έλεγχο ενός ή περισσότερων πτυσσόμενων στοιχείων. Το data-bs-targetχαρακτηριστικό δέχεται έναν επιλογέα CSS για εφαρμογή της σύμπτυξης. Φροντίστε να προσθέσετε την κλάση collapseστο πτυσσόμενο στοιχείο. Εάν θέλετε να είναι ανοιχτό από προεπιλογή, προσθέστε την πρόσθετη κλάση show.

Για να προσθέσετε διαχείριση ομάδας που μοιάζει με ακορντεόν σε μια πτυσσόμενη περιοχή, προσθέστε το χαρακτηριστικό δεδομένων data-bs-parent="#selector". Ανατρέξτε στην επίδειξη για να το δείτε σε δράση.

Μέσω JavaScript

Ενεργοποίηση μη αυτόματα με:

var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
  return new bootstrap.Collapse(collapseEl)
})

Επιλογές

Οι επιλογές μπορούν να μεταβιβαστούν μέσω χαρακτηριστικών δεδομένων ή JavaScript. Για τα χαρακτηριστικά δεδομένων, προσθέστε το όνομα της επιλογής στο data-bs-, όπως στο data-bs-parent="".

Ονομα Τύπος Προκαθορισμένο Περιγραφή
parent επιλογέας | Αντικείμενο jQuery | Στοιχείο DOM false Εάν παρέχεται γονέας, τότε όλα τα πτυσσόμενα στοιχεία κάτω από τον καθορισμένο γονέα θα κλείσουν όταν εμφανιστεί αυτό το πτυσσόμενο στοιχείο. (παρόμοια με την παραδοσιακή συμπεριφορά ακορντεόν - αυτό εξαρτάται από την cardτάξη). Το χαρακτηριστικό πρέπει να οριστεί στην πτυσσόμενη περιοχή στόχου.
toggle boolean true Εναλλάσσει το πτυσσόμενο στοιχείο κατά την επίκληση

Μέθοδοι

Ασύγχρονες μέθοδοι και μεταβάσεις

Όλες οι μέθοδοι API είναι ασύγχρονες και ξεκινούν μια μετάβαση . Επιστρέφουν στον καλούντα μόλις ξεκινήσει η μετάβαση αλλά πριν τελειώσει . Επιπλέον, μια κλήση μεθόδου σε ένα στοιχείο μετάβασης θα αγνοηθεί .

Δείτε την τεκμηρίωση JavaScript για περισσότερες πληροφορίες .

Ενεργοποιεί το περιεχόμενό σας ως πτυσσόμενο στοιχείο. Αποδέχεται μια προαιρετική επιλογή object.

Μπορείτε να δημιουργήσετε ένα στιγμιότυπο σύμπτυξης με τον κατασκευαστή, για παράδειγμα:

var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
Μέθοδος Περιγραφή
toggle Εναλλάσσει ένα πτυσσόμενο στοιχείο σε εμφάνιση ή απόκρυψη. Επιστρέφει στον καλούντα πριν εμφανιστεί ή κρυφτεί το πτυσσόμενο στοιχείο (δηλαδή πριν συμβεί το shown.bs.collapseή το hidden.bs.collapseσυμβάν).
show Εμφανίζει ένα πτυσσόμενο στοιχείο. Επιστρέφει στον καλούντα πριν εμφανιστεί πραγματικά το πτυσσόμενο στοιχείο (π.χ. πριν συμβεί το shown.bs.collapseσυμβάν).
hide Κρύβει ένα πτυσσόμενο στοιχείο. Επιστρέφει στον καλούντα πριν από την πραγματική απόκρυψη του πτυσσόμενου στοιχείου (π.χ. πριν συμβεί το hidden.bs.collapseσυμβάν).
dispose Καταστρέφει την κατάρρευση ενός στοιχείου. (Καταργεί τα αποθηκευμένα δεδομένα στο στοιχείο DOM)
getInstance Στατική μέθοδος που σας επιτρέπει να λάβετε την εμφάνιση σύμπτυξης που σχετίζεται με ένα στοιχείο DOM, μπορείτε να τη χρησιμοποιήσετε ως εξής:bootstrap.Collapse.getInstance(element)
getOrCreateInstance Στατική μέθοδος που επιστρέφει ένα στιγμιότυπο σύμπτυξης που σχετίζεται με ένα στοιχείο DOM ή δημιουργεί ένα νέο σε περίπτωση που δεν είχε αρχικοποιηθεί. Μπορείτε να το χρησιμοποιήσετε ως εξής:bootstrap.Collapse.getOrCreateInstance(element)

Εκδηλώσεις

Η κλάση κατάρρευσης του Bootstrap εκθέτει μερικά συμβάντα για σύνδεση στη λειτουργικότητα κατάρρευσης.

Τύπος συμβάντος Περιγραφή
show.bs.collapse Αυτό το συμβάν ενεργοποιείται αμέσως όταν showκαλείται η μέθοδος παρουσίας.
shown.bs.collapse Αυτό το συμβάν ενεργοποιείται όταν ένα στοιχείο σύμπτυξης έχει γίνει ορατό στον χρήστη (θα περιμένει να ολοκληρωθούν οι μεταβάσεις CSS).
hide.bs.collapse Αυτό το συμβάν ενεργοποιείται αμέσως μετά την hideκλήση της μεθόδου.
hidden.bs.collapse Αυτό το συμβάν ενεργοποιείται όταν ένα στοιχείο σύμπτυξης έχει κρυφτεί από τον χρήστη (θα περιμένει να ολοκληρωθούν οι μεταβάσεις CSS).
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})