Μετάβαση στο κύριο περιεχόμενο Μετάβαση στην πλοήγηση εγγράφων
Check
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.
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>

Οριζόντιος

Το πρόσθετο σύμπτυξης υποστηρίζει επίσης την οριζόντια σύμπτυξη. Προσθέστε την .collapse-horizontalκλάση τροποποιητή για μετάβαση στο widthαντί heightκαι ορίστε το a widthστο άμεσο θυγατρικό στοιχείο. Μη διστάσετε να γράψετε το δικό σας προσαρμοσμένο Sass, να χρησιμοποιήσετε ενσωματωμένα στυλ ή να χρησιμοποιήσετε τα βοηθητικά προγράμματα πλάτους .

Λάβετε υπόψη ότι ενώ το παρακάτω παράδειγμα έχει ένα min-heightσετ για την αποφυγή υπερβολικών βαφών στα έγγραφά μας, αυτό δεν απαιτείται ρητά. Απαιτείται μόνο το widthστοιχείο on the child.

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

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

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

Sass

Μεταβλητές

$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.

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

Μέσω 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. Όταν ένα στοιχείο έχει data-bs-config='{"delay":0, "title":123}'και data-bs-title="456"χαρακτηριστικά, η τελική titleτιμή θα είναι 456και τα ξεχωριστά χαρακτηριστικά δεδομένων θα αντικαταστήσουν τις τιμές που δίνονται στο data-bs-config. Επιπλέον, τα υπάρχοντα χαρακτηριστικά δεδομένων μπορούν να φιλοξενήσουν τιμές JSON όπως data-bs-delay='{"show":0,"hide":150}'.

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

Μέθοδοι

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

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

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

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

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

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

Εκδηλώσεις

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

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