Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint. Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt doloremque vero. Magnam praesentium sed earum quis vitae libero, eius voluptas laboriosam ipsam in perspiciatis ad voluptate beatae repellat voluptatem, deserunt eum fugit quaerat veniam? Quaerat voluptatem animi nulla magnam obcaecati quis. Id nulla dolorum voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga qui explicabo?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint. Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt doloremque vero. Magnam praesentium sed earum quis vitae libero, eius voluptas laboriosam ipsam in perspiciatis eatae repellat voluptatem, deserunt eum fugit quaerat veniam? Quaerat voluptatem animi nulla magnam obcaecati quis. Id nulla dolorum voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga qui explicabo?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint. Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt doloremque verooluptatem animi nulla magnam obcaecati quis. Id nulla dolorum voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga qui explicabo?
<nav id="navbar-example" class="navbar bg-body-tertiary px-3 mb-3">
<a class="navbar-brand" href="#">Scrollspy</a>
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link" href="#scrollspyHeading1">First</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#scrollspyHeading2">Second</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#scrollspyHeading3">Third</a>
</li>
</ul>
</nav>
<div data-bs-spy="scroll" data-bs-target="#navbar-example" data-bs-root-margin="0px 0px -40%"
data-bs-smooth-scroll="true" class="scrollspy-example bg-body-tertiary p-3 rounded-2" tabindex="0">
<h4 id="scrollspyHeading1">First heading</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex
aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint.
Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt
doloremque vero. Magnam praesentium sed earum quis vitae libero, eius voluptas laboriosam ipsam
in perspiciatis ad voluptate beatae repellat voluptatem, deserunt eum
fugit quaerat veniam? Quaerat voluptatem animi nulla magnam obcaecati quis. Id nulla dolorum
voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel
iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut
nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga
qui explicabo?</p>
<h4 id="scrollspyHeading2">Second heading</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex
aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint.
Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt
doloremque vero. Magnam praesentium sed earum quis vitae libero, eius voluptas laboriosam ipsam
in perspiciatis eatae repellat voluptatem, deserunt eum
fugit quaerat veniam? Quaerat voluptatem animi nulla magnam obcaecati quis. Id nulla dolorum
voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel
iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut
nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga
qui explicabo?</p>
<h4 id="scrollspyHeading3">Third heading</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore, itaque, veniam dolor illum ex
aliquid ullam, hic mollitia debitis facere dolore vero? Quia tempora id quibusdam nihil sint.
Illo alias, eveniet, aut distinctio impedit accusamus architecto fugit quos, enim incidunt
doloremque verooluptatem animi nulla magnam obcaecati quis. Id nulla dolorum
voluptatem odio velit praesentium officia vitae odit perspiciatis consequuntur hic excepturi vel
iusto officiis, exercitationem qui ab animi accusantium repellat. Quisquam sequi quos, ad ut
nobis, facere doloremque tempore enim dignissimos hic et! Ducimus id, rem vitae optio illum fuga
qui explicabo?</p>
</div>
Custom CSS is required to style the window height and add set the overflow-y property
to
'scroll'.
/* Sets the height of the scroll window and overflow-y --- */
[data-bs-spy='scroll'] {
height: 250px;
overflow-y: auto; position: relative;
}
/* Sets the margin for the headers ----------------------- */
[data-bs-spy='scroll'] h4 {
scroll-margin-top: 1rem;
}
If you are injecting the scrollspy after the DOM has loaded, you may need to refresh the Scrollspy by running a function such as this, below.
function refreshScrollspy() {
const spyEl = document.querySelector('[data-bs-spy="scroll"]');
if (!spyEl) {
return;
}
const inst = bootstrap.ScrollSpy.getInstance(spyEl);
if (inst) {
inst.refresh();
} else {
bootstrap.ScrollSpy.getOrCreateInstance(spyEl);
}
}
This will reset the page. Are you sure?