Κατάρρευση
Εναλλάξτε την ορατότητα του περιεχομένου σε όλο το έργο σας με μερικές κλάσεις και τις προσθήκες JavaScript.
Πως δουλεύει
Η προσθήκη σύμπτυξης JavaScript χρησιμοποιείται για την εμφάνιση και απόκρυψη περιεχομένου. Τα κουμπιά ή οι άγκυρες χρησιμοποιούνται ως ενεργοποιητές που αντιστοιχίζονται σε συγκεκριμένα στοιχεία που αλλάζετε. Η σύμπτυξη ενός στοιχείου θα κινήσει το height
από την τρέχουσα τιμή του σε 0
. Δεδομένου του τρόπου με τον οποίο το CSS χειρίζεται κινούμενα σχέδια, δεν μπορείτε να χρησιμοποιήσετε padding
σε ένα .collapse
στοιχείο. Αντίθετα, χρησιμοποιήστε την κλάση ως ανεξάρτητο στοιχείο αναδίπλωσης.
prefers-reduced-motion
ερώτημα πολυμέσων. Δείτε την ενότητα
μειωμένης κίνησης της τεκμηρίωσης προσβασιμότητας .
Παράδειγμα
Κάντε κλικ στα κουμπιά παρακάτω για εμφάνιση και απόκρυψη ενός άλλου στοιχείου μέσω αλλαγών κλάσης:
.collapse
κρύβει περιεχόμενο.collapsing
εφαρμόζεται κατά τις μεταβάσεις.collapse.show
δείχνει περιεχόμενο
Γενικά, συνιστούμε να χρησιμοποιήσετε ένα κουμπί με το data-target
χαρακτηριστικό. Αν και δεν συνιστάται από σημασιολογική άποψη, μπορείτε επίσης να χρησιμοποιήσετε έναν σύνδεσμο με το href
χαρακτηριστικό (και a role="button"
). Και στις δύο περιπτώσεις data-toggle="collapse"
απαιτείται.
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-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>
Οριζόντιος
Το πρόσθετο σύμπτυξης υποστηρίζει επίσης την οριζόντια σύμπτυξη. Προσθέστε την .width
κλάση τροποποιητή για μετάβαση στο width
αντί height
και ορίστε το a width
στο άμεσο θυγατρικό στοιχείο. Μη διστάσετε να γράψετε το δικό σας προσαρμοσμένο Sass, να χρησιμοποιήσετε ενσωματωμένα στυλ ή να χρησιμοποιήσετε τα βοηθητικά προγράμματα πλάτους .
min-height
σετ για την αποφυγή υπερβολικών βαφών στα έγγραφά μας, αυτό δεν απαιτείται ρητά.
Απαιτείται μόνο το width
στοιχείο on the child.
<p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse width" id="collapseWidthExample">
<div class="card card-body" style="width: 320px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Πολλαπλοί στόχοι
Το A <button>
ή <a>
μπορεί να εμφανίσει και να αποκρύψει πολλά στοιχεία αναφέροντάς τα με έναν επιλογέα JQuery στο χαρακτηριστικό του href
ή data-target
. Πολλαπλές <button>
ή <a>
μπορούν να εμφανίσουν και να αποκρύψουν ένα στοιχείο εάν το καθένα αναφέρεται σε αυτό με το χαρακτηριστικό href
ή το data-target
χαρακτηριστικό του
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-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>
Παράδειγμα ακορντεόν
Χρησιμοποιώντας το στοιχείο κάρτας , μπορείτε να επεκτείνετε την προεπιλεγμένη συμπεριφορά σύμπτυξης για να δημιουργήσετε ένα ακορντεόν. Για να πετύχετε σωστά το στυλ ακορντεόν, φροντίστε να το χρησιμοποιήσετε .accordion
ως περιτύλιγμα.
.show
κατηγορία.
<div class="accordion" id="accordionExample">
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</button>
</h2>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the second accordion panel. This panel is hidden by default.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingThree">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</button>
</h2>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
</div>
</div>
</div>
</div>
Προσιτότητα
Φροντίστε να προσθέσετε aria-expanded
στο στοιχείο ελέγχου. Αυτό το χαρακτηριστικό μεταφέρει ρητά την τρέχουσα κατάσταση του πτυσσόμενου στοιχείου που είναι συνδεδεμένο με τον έλεγχο των συσκευών ανάγνωσης οθόνης και παρόμοιες υποβοηθητικές τεχνολογίες. Εάν το πτυσσόμενο στοιχείο είναι κλειστό από προεπιλογή, το χαρακτηριστικό στο στοιχείο ελέγχου θα πρέπει να έχει τιμή aria-expanded="false"
. Εάν έχετε ρυθμίσει το πτυσσόμενο στοιχείο να είναι ανοιχτό από προεπιλογή χρησιμοποιώντας την show
κλάση, ορίστε aria-expanded="true"
το στο στοιχείο ελέγχου. Η προσθήκη θα αλλάξει αυτόματα αυτό το χαρακτηριστικό στο στοιχείο ελέγχου με βάση το αν το πτυσσόμενο στοιχείο έχει ανοίξει ή κλείσει (μέσω JavaScript ή επειδή ο χρήστης ενεργοποίησε ένα άλλο στοιχείο ελέγχου που επίσης συνδέεται με το ίδιο πτυσσόμενο στοιχείο). Εάν το στοιχείο HTML του στοιχείου ελέγχου δεν είναι κουμπί (π.χ. an <a>
ή <div>
), το χαρακτηριστικόrole="button"
πρέπει να προστεθεί στο στοιχείο.
Εάν το στοιχείο ελέγχου σας στοχεύει ένα μεμονωμένο πτυσσόμενο στοιχείο – δηλαδή το data-target
χαρακτηριστικό δείχνει σε έναν id
επιλογέα – θα πρέπει να προσθέσετε το aria-controls
χαρακτηριστικό στο στοιχείο ελέγχου, που περιέχει το id
στοιχείο του πτυσσόμενου στοιχείου. Οι σύγχρονες συσκευές ανάγνωσης οθόνης και παρόμοιες υποστηρικτικές τεχνολογίες χρησιμοποιούν αυτό το χαρακτηριστικό για να παρέχουν στους χρήστες πρόσθετες συντομεύσεις για την απευθείας πλοήγηση στο ίδιο το πτυσσόμενο στοιχείο.
Λάβετε υπόψη ότι η τρέχουσα εφαρμογή του Bootstrap δεν καλύπτει τις διάφορες αλληλεπιδράσεις πληκτρολογίου που περιγράφονται στο μοτίβο ακορντεόν του Οδηγού πρακτικών συγγραφής ARIA - θα χρειαστεί να τις συμπεριλάβετε μόνοι σας με προσαρμοσμένη JavaScript.
Χρήση
Το πρόσθετο κατάρρευσης χρησιμοποιεί μερικές κατηγορίες για να χειριστεί τη βαριά ανύψωση:
.collapse
κρύβει το περιεχόμενο.collapse.show
δείχνει το περιεχόμενο.collapsing
προστίθεται όταν ξεκινά η μετάβαση και αφαιρείται όταν τελειώσει
Αυτές οι τάξεις βρίσκονται στο _transitions.scss
.
Μέσω χαρακτηριστικών δεδομένων
Απλώς προσθέστε data-toggle="collapse"
και a data-target
στο στοιχείο για να εκχωρήσετε αυτόματα τον έλεγχο ενός ή περισσότερων πτυσσόμενων στοιχείων. Το data-target
χαρακτηριστικό δέχεται έναν επιλογέα CSS για εφαρμογή της σύμπτυξης. Φροντίστε να προσθέσετε την κλάση collapse
στο πτυσσόμενο στοιχείο. Εάν θέλετε να είναι ανοιχτό από προεπιλογή, προσθέστε την πρόσθετη κλάση show
.
Για να προσθέσετε διαχείριση ομάδας που μοιάζει με ακορντεόν σε μια πτυσσόμενη περιοχή, προσθέστε το χαρακτηριστικό δεδομένων data-parent="#selector"
. Ανατρέξτε στην επίδειξη για να το δείτε σε δράση.
Μέσω JavaScript
Ενεργοποίηση μη αυτόματα με:
$('.collapse').collapse()
Επιλογές
Οι επιλογές μπορούν να μεταβιβαστούν μέσω χαρακτηριστικών δεδομένων ή JavaScript. Για τα χαρακτηριστικά δεδομένων, προσθέστε το όνομα της επιλογής στο data-
, όπως στο data-parent=""
.
Ονομα | Τύπος | Προκαθορισμένο | Περιγραφή |
---|---|---|---|
μητρική εταιρεία | επιλογέας | Αντικείμενο jQuery | Στοιχείο DOM | ψευδής | Εάν παρέχεται γονέας, τότε όλα τα πτυσσόμενα στοιχεία κάτω από τον καθορισμένο γονέα θα κλείσουν όταν εμφανιστεί αυτό το πτυσσόμενο στοιχείο. (παρόμοια με την παραδοσιακή συμπεριφορά ακορντεόν - αυτό εξαρτάται από την card τάξη). Το χαρακτηριστικό πρέπει να οριστεί στην πτυσσόμενη περιοχή στόχου. |
μεταβάλλω | boolean | αληθής | Εναλλάσσει το πτυσσόμενο στοιχείο κατά την επίκληση |
Μέθοδοι
Ασύγχρονες μέθοδοι και μεταβάσεις
Όλες οι μέθοδοι API είναι ασύγχρονες και ξεκινούν μια μετάβαση . Επιστρέφουν στον καλούντα μόλις ξεκινήσει η μετάβαση αλλά πριν τελειώσει . Επιπλέον, μια κλήση μεθόδου σε ένα στοιχείο μετάβασης θα αγνοηθεί .
Δείτε την τεκμηρίωση JavaScript για περισσότερες πληροφορίες .
.collapse(options)
Ενεργοποιεί το περιεχόμενό σας ως πτυσσόμενο στοιχείο. Αποδέχεται μια προαιρετική επιλογή object
.
$('#myCollapsible').collapse({
toggle: false
})
.collapse('toggle')
Εναλλάσσει ένα πτυσσόμενο στοιχείο σε εμφάνιση ή απόκρυψη. Επιστρέφει στον καλούντα πριν εμφανιστεί ή κρυφτεί το πτυσσόμενο στοιχείο (δηλαδή πριν συμβεί το shown.bs.collapse
ή το hidden.bs.collapse
συμβάν).
.collapse('show')
Εμφανίζει ένα πτυσσόμενο στοιχείο. Επιστρέφει στον καλούντα πριν εμφανιστεί πραγματικά το πτυσσόμενο στοιχείο (δηλαδή πριν συμβεί το shown.bs.collapse
συμβάν).
.collapse('hide')
Κρύβει ένα πτυσσόμενο στοιχείο. Επιστρέφει στον καλούντα πριν από την πραγματική απόκρυψη του πτυσσόμενου στοιχείου (δηλαδή πριν συμβεί το hidden.bs.collapse
συμβάν).
.collapse('dispose')
Καταστρέφει την κατάρρευση ενός στοιχείου.
Εκδηλώσεις
Η κλάση κατάρρευσης του Bootstrap εκθέτει μερικά συμβάντα για σύνδεση στη λειτουργικότητα κατάρρευσης.
Τύπος συμβάντος | Περιγραφή |
---|---|
εμφανίζω.β.κατάρρευση | Αυτό το συμβάν ενεργοποιείται αμέσως όταν show καλείται η μέθοδος παρουσίας. |
φαίνεται.β.σύμπτυξη | Αυτό το συμβάν ενεργοποιείται όταν ένα στοιχείο σύμπτυξης έχει γίνει ορατό στον χρήστη (θα περιμένει να ολοκληρωθούν οι μεταβάσεις CSS). |
απόκρυψη.β.κατάρρευση | Αυτό το συμβάν ενεργοποιείται αμέσως μετά την hide κλήση της μεθόδου. |
κρυφός.β.σύμπτυξη | Αυτό το συμβάν ενεργοποιείται όταν ένα στοιχείο σύμπτυξης έχει κρυφτεί από τον χρήστη (θα περιμένει να ολοκληρωθούν οι μεταβάσεις CSS). |
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something...
})