Performance: Multi-target collapse
This affects page interactivity and rendering speed when toggling multiple collapsible elements simultaneously.
<button id="toggleAll">Toggle All</button> <div id="collapseOne" class="collapse">Content 1</div> <div id="collapseTwo" class="collapse">Content 2</div> <div id="collapseThree" class="collapse">Content 3</div> <script>const btn = document.getElementById('toggleAll'); btn.addEventListener('click', () => { const collapses = document.querySelectorAll('.collapse'); collapses.forEach(el => el.classList.toggle('show')); });</script>
<button data-bs-toggle="collapse" data-bs-target="#collapseOne,#collapseTwo,#collapseThree">Toggle All</button> <div id="collapseOne" class="collapse">Content 1</div> <div id="collapseTwo" class="collapse">Content 2</div> <div id="collapseThree" class="collapse">Content 3</div>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Multi-target data-bs-toggle | Multiple toggle events | 3 reflows (one per target) | 3 paints | [X] Bad |
| Batch toggle with script | Single toggle event batch | 1 reflow | 1 paint | [OK] Good |
data-bs-target attribute do in a Bootstrap multi-target collapse button?data-bs-targetdata-bs-target, all those elements collapse or expand together.#section1 and #section2 in one button using Bootstrap?data-bs-target.#section1,#section2. Others use spaces, semicolons, or spaces with dot selectors which are invalid here.<button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#panel1,#panel2">Toggle Panels</button> <div id="panel1" class="collapse show">Panel 1 Content</div> <div id="panel2" class="collapse">Panel 2 Content</div>
show so it is visible. Panel2 does not, so it is hidden.#box1 and #box2 collapses?<button data-bs-toggle="collapse" data-bs-target="#box1 #box2">Toggle Boxes</button>
data-bs-target, not spaces.#info, #details, and #summary. Which of these is the best complete HTML snippet to achieve this with Bootstrap multi-target collapse?Pass the test and this pattern moves unknown