הִתמוֹטְטוּת
החלף את הנראות של תוכן בפרויקט שלך עם כמה שיעורים ותוספי JavaScript שלנו.
איך זה עובד
התוסף ל-Clapse JavaScript משמש להצגה והסתרה של תוכן. לחצנים או עוגנים משמשים כטריגרים שממופים לאלמנטים ספציפיים שאתה מחליף. כיווץ של אלמנט יגרום להנפשה height
מהערך הנוכחי שלו ל- 0
. בהתחשב באופן שבו CSS מטפל בהנפשות, אינך יכול להשתמש padding
באלמנט .collapse
. במקום זאת, השתמש במחלקה כרכיב עטיפה עצמאי.
prefers-reduced-motion
בשאילתת המדיה. עיין
בסעיף תנועה מופחתת בתיעוד הנגישות שלנו .
דוגמא
לחץ על הלחצנים למטה כדי להציג ולהסתיר אלמנט נוסף באמצעות שינויים בכיתה:
.collapse
מסתיר תוכן.collapsing
מוחל במהלך מעברים.collapse.show
מציג תוכן
באופן כללי, אנו ממליצים להשתמש בלחצן עם data-bs-target
התכונה. אמנם לא מומלץ מנקודת מבט סמנטית, אבל אתה יכול גם להשתמש בקישור עם href
התכונה (ו-a role="button"
). בשני המקרים, data-bs-toggle="collapse"
נדרש.
<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
<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 אינו מכסה את אינטראקציות המקלדת האופציונליות השונות המתוארות בתבנית האקורדיון של WAI-ARIA Authoring Practices 1.1 - תצטרך לכלול את אלה בעצמך עם JavaScript מותאם אישית.
סאס
משתנים
$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 |
בוליאני | true |
מחליפה את הרכיב הניתן לקריסה בעת הפניה |
שיטות
שיטות ומעברים אסינכרוניים
כל שיטות ה-API הן אסינכרוניות ומתחילות מעבר . הם חוזרים למתקשר ברגע שהמעבר מתחיל אבל לפני שהוא מסתיים . בנוסף, תתעלם מקריאת שיטה על רכיב מעבר .
מפעיל את התוכן שלך כאלמנט מתקפל. מקבל אפשרויות אופציונליות 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...
})