Scrollspy
Uses CSS Carousel specs for a scrollspy only with HTML and CSS. Inspired by Scroll Spy example on chrome.dev.
Some browsers might not be supported. As of writing works best with Chromium based browsers.
Example with List group
Item 1.1
Item 1.2
Item 1.3
Item 1.4
Item 2.1
Item 2.2
Item 2.3
Item 2.4
Item 3.1
Item 3.2
Item 3.3
Item 3.4
Item 4.1
Item 4.2
Item 4.3
Item 4.4
Code
<div class="blue-scrollspy" aria-live="polite" style="height: 200px">
<section aria-label="Group 1" class="list-group mb-1 m-last-0">
<header class="list-group-item bg-body-tertiary fw-bold">Group 1</header>
<div class="list-group-item">Item 1.1</div>
<div class="list-group-item">Item 1.2</div>
<div class="list-group-item">Item 1.3</div>
<div class="list-group-item">Item 1.4</div>
</section>
<section aria-label="Group 2" class="list-group mb-1 m-last-0">
<header class="list-group-item bg-body-tertiary fw-bold">Group 2</header>
<div class="list-group-item">Item 2.1</div>
<div class="list-group-item">Item 2.2</div>
<div class="list-group-item">Item 2.3</div>
<div class="list-group-item">Item 2.4</div>
</section>
<section aria-label="Group 3" class="list-group mb-1 m-last-0">
<header class="list-group-item bg-body-tertiary fw-bold">Group 3</header>
<div class="list-group-item">Item 3.1</div>
<div class="list-group-item">Item 3.2</div>
<div class="list-group-item">Item 3.3</div>
<div class="list-group-item">Item 3.4</div>
</section>
<section aria-label="Group 4" class="list-group mb-1 m-last-0">
<header class="list-group-item bg-body-tertiary fw-bold">Group 4</header>
<div class="list-group-item">Item 4.1</div>
<div class="list-group-item">Item 4.2</div>
<div class="list-group-item">Item 4.3</div>
<div class="list-group-item">Item 4.4</div>
</section>
</div>
You can also make the scrollmarkers appear after
Item 1.1
Item 1.2
Item 1.3
Item 1.4
Item 2.1
Item 2.2
Item 2.3
Item 2.4
Item 3.1
Item 3.2
Item 3.3
Item 3.4
Item 4.1
Item 4.2
Item 4.3
Item 4.4
Code
<div class="blue-scrollspy blue-scrollspy-after" aria-live="polite" style="height: 200px">
<section aria-label="Group 1" class="list-group mb-1">
<header class="list-group-item bg-body-tertiary fw-bold">Group 1</header>
<div class="list-group-item">Item 1.1</div>
<div class="list-group-item">Item 1.2</div>
<div class="list-group-item">Item 1.3</div>
<div class="list-group-item">Item 1.4</div>
</section>
<section aria-label="Group 2" class="list-group mb-1">
<header class="list-group-item bg-body-tertiary fw-bold">Group 2</header>
<div class="list-group-item">Item 2.1</div>
<div class="list-group-item">Item 2.2</div>
<div class="list-group-item">Item 2.3</div>
<div class="list-group-item">Item 2.4</div>
</section>
<section aria-label="Group 3" class="list-group mb-1">
<header class="list-group-item bg-body-tertiary fw-bold">Group 3</header>
<div class="list-group-item">Item 3.1</div>
<div class="list-group-item">Item 3.2</div>
<div class="list-group-item">Item 3.3</div>
<div class="list-group-item">Item 3.4</div>
</section>
<section aria-label="Group 4" class="list-group">
<header class="list-group-item bg-body-tertiary fw-bold">Group 4</header>
<div class="list-group-item">Item 4.1</div>
<div class="list-group-item">Item 4.2</div>
<div class="list-group-item">Item 4.3</div>
<div class="list-group-item">Item 4.4</div>
</section>
</div>
Grab the code
When you don't use the entire Blue Web library, you can also just copy and paste the required code into your own project.
-
Copy and paste the following code into your project. Source: @/dist/styles/_scrollspy.scss