چگونه کار می کند
پلاگین جاوا اسکریپت جمع شده برای نمایش و پنهان کردن محتوا استفاده می شود. دکمهها یا لنگرها بهعنوان محرکهایی استفاده میشوند که به عناصر خاصی که شما آنها را تغییر میدهید نگاشت میکنند. جمع کردن یک عنصر باعث متحرک شدن آن می شود height از ارزش فعلی آن به 0. با توجه به اینکه CSS چگونه انیمیشن ها را مدیریت می کند، نمی توانید از آن استفاده کنید padding روی یک .collapse عنصر در عوض، از کلاس به عنوان یک عنصر بسته بندی مستقل استفاده کنید.
prefers-reduced-motion پرس و جو رسانه ای را ببینید بخش حرکت کاهش یافته اسناد دسترسی ما.
نمونه
روی دکمه های زیر کلیک کنید تا عنصر دیگری از طریق تغییرات کلاس نمایش داده و پنهان شود:
.collapseمحتوا را پنهان می کند.collapsingدر طول انتقال اعمال می شود.collapse.showمحتوا را نشان می دهد
می توانید از یک لینک با استفاده از href ویژگی یا دکمه ای با data-bs-target صفت. در هر دو مورد، 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">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
</div>
</div>
اهداف متعدد
یک <button> یا <a> می تواند چندین عنصر را با ارجاع به آنها با انتخابگر در خود نشان داده و پنهان کند href or data-bs-target صفت.
چندگانه <button> یا <a> اگر هر کدام از آنها به آن ارجاع دهند می توانند یک عنصر را نشان داده و پنهان کنند href or 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">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
</div>
</div>
</div>
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample2">
<div class="card card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
</div>
</div>
</div>
</div>
نمونه آکاردئون
استفاده card جزء، می توانید رفتار فروپاشی پیش فرض را برای ایجاد آکاردئون گسترش دهید. برای رسیدن به سبک آکاردئونی، حتما از آن استفاده کنید.accordion.
.accordion-body، اگرچه این انتقال سرریز را محدود می کند.
.accordion-body، اگرچه این انتقال سرریز را محدود می کند.
.accordion-body، اگرچه این انتقال سرریز را محدود می کند.
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the first item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingThree">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Accordion Item #3
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
</div>
دسترسی
حتما به عنصر کنترل اضافه کنید. این ویژگی به صراحت وضعیت فعلی عنصر جمع شونده متصل به کنترل صفحه خوان و فناوری های کمکی مشابه را نشان می دهد. اگر عنصر جمع شونده به طور پیشفرض بسته باشد، ویژگی روی عنصر کنترل باید مقداری برابر با . اگر عنصر جمع شونده را بهطور پیشفرض با استفاده از کلاس باز کردهاید، در عوض روی کنترل تنظیم کنید. افزونه بر اساس باز یا بسته شدن عنصر جمع شونده (از طریق جاوا اسکریپت یا به دلیل اینکه کاربر عنصر کنترل دیگری را که به همان عنصر جمع شونده گره خورده است راه اندازی کرده است) به طور خودکار این ویژگی را روی کنترل تغییر می دهد. اگر عنصر HTML عنصر کنترل یک دکمه نیست (به عنوان مثال، یک)، ویژگی باید به عنصر اضافه شود.
اگر عنصر کنترل شما یک عنصر جمع شونده منفرد را هدف قرار می دهد - یعنی مشخصه به یک انتخابگر اشاره می کند - باید ویژگی را به عنصر کنترل اضافه کنید که حاوی عنصر جمع شونده باشد. صفحهخوانهای مدرن و فناوریهای کمکی مشابه از این ویژگی استفاده میکنند تا میانبرهای اضافی را برای کاربران فراهم کنند تا مستقیماً به خود عنصر جمع شونده پیمایش کنند..
توجه داشته باشید که پیاده سازی فعلی بوت استرپ موارد مختلف را پوشش نمی دهد اختیاری تعاملات صفحه کلید شرح داده شده در شیوه های تألیف WAI-ARIA الگوی آکاردئون 1.1 - شما باید خودتان این موارد را با جاوا اسکریپت سفارشی اضافه کنید.
استفاده
افزونه فروپاشی از چند کلاس برای انجام کارهای سنگین استفاده می کند:
.collapseمحتوا را پنهان می کند.collapse.showمحتوا را پنهان می کند.collapsingمحتوا را پنهان می کند
این کلاس ها را می توان در _transitions.scss.
از طریق ویژگی های داده
فقط اضافه کن data-bs-toggle="collapse" و یک data-bs-target به عنصر برای اختصاص خودکار کنترل یک یا چند عنصر تاشو. را data-bs-target ویژگی یک انتخابگر CSS را برای اعمال collapse می پذیرد. حتما کلاس را اضافه کنید collapse به عنصر جمع شونده اگر می خواهید به طور پیش فرض باز شود، کلاس اضافی را اضافه کنیدshow.
برای افزودن مدیریت گروه آکاردئونی مانند به یک ناحیه جمع شونده، ویژگی داده را اضافه کنید data-parent="#selector". برای مشاهده در عمل به دمو مراجعه کنید.
از طریق جاوا اسکریپت
فعال کردن دستی با:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
گزینه ها
گزینه ها را می توان از طریق ویژگی های داده یا جاوا اسکریپت منتقل کرد. برای ویژگی های داده، نام گزینه را به آن اضافه کنید data-، همانطور که در data-parent="".
| نام | نوع | پیش فرض | توضیحات |
|---|---|---|---|
parent |
انتخابگر | شی jQuery | عنصر DOM | false |
اگر والد ارائه شده باشد، پس از نمایش این مورد تاشو، همه عناصر جمع شونده در زیر والد مشخص شده بسته خواهند شد. (مشابه رفتار آکاردئون سنتی - این بستگی به card کلاس). مشخصه باید روی ناحیه جمع شونده هدف تنظیم شود. |
toggle |
بولن | true |
عنصر جمع شونده را هنگام فراخوانی تغییر می دهد |
روش ها
روش ها و انتقال های ناهمزمان
همه متدهای API هستند asynchronous و شروع کنید transition. آنها به محض شروع انتقال به تماس گیرنده باز می گردند اما قبل از اینکه تمام شود. علاوه بر این، یک روش فراخوانی بر روی a جزء انتقال نادیده گرفته خواهد شد.
محتوای شما را به عنوان یک عنصر جمع شونده فعال می کند. یک گزینه اختیاری را می پذیرد object.
محتوای شما را به عنوان یک عنصر جمع شونده فعال می کند. یک گزینه اختیاری را می پذیرد:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
toggle: false
})
| متد | توضیحات |
|---|---|
toggle |
یک عنصر جمع شونده را به نمایش یا پنهان تغییر می دهد. قبل از اینکه عنصر جمع شونده واقعاً نشان داده یا پنهان شود به تماس گیرنده برمی گردد (یعنی قبل از shown.bs.collapse یا hidden.bs.collapse event occurs). |
show |
یک عنصر جمع شونده را به نمایش یا پنهان تغییر می دهد. قبل از اینکه عنصر جمع شونده واقعاً نشان داده یا پنهان شود به تماس گیرنده برمی گردد (یعنی قبل از shown.bs.collapse event occurs). |
hide |
یک عنصر جمع شونده را به نمایش یا پنهان تغییر می دهد. قبل از اینکه عنصر جمع شونده واقعاً نشان داده یا پنهان شود به تماس گیرنده برمی گردد (یعنی قبل از hidden.bs.collapse event occurs). |
dispose |
Destroys an element's collapse. |
getInstance |
روش ایستا که به شما امکان می دهد نمونه فروپاشی مرتبط با یک عنصر DOM را دریافت کنید. |
رویدادها
کلاس فروپاشی بوت استرپ چند رویداد را برای اتصال به عملکرد جمع شدن در معرض نمایش می گذارد.
| نوع رویداد | توضیحات |
|---|---|
show.bs.collapse |
روش ایستا که به شما امکان می دهد نمونه فروپاشی مرتبط با یک عنصر DOM را دریافت کنید. |
shown.bs.collapse |
روش ایستا که به شما امکان می دهد نمونه فروپاشی مرتبط با یک عنصر DOM را دریافت کنید. |
hide.bs.collapse |
روش ایستا که به شما امکان می دهد نمونه فروپاشی مرتبط با یک عنصر DOM را دریافت کنید. |
hidden.bs.collapse |
روش ایستا که به شما امکان می دهد نمونه فروپاشی مرتبط با یک عنصر DOM را دریافت کنید. |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})