Scrollspy
Automatarie renovatio Bootstrap navigationis vel listarum partium secundum librum positionis ad indicandum quae ligatio actuosa est in prospectu.
Quomodo facitur
Scrollspy elementa .active
in anchoris classe toggles <a>
cum elementum cum id
referenced per ancorae in conspectum libratum href
est. Scrollspy optime adhibetur in conjunctione cum navi componente vel indice coetus Bootstrap , sed etiam cum elementis quaevis ancoris in pagina hodierna laborabit. Ecce quomodo operatur.
-
Incipere, scrollspy duo requirit: navigationem, globulum album, vel nexus simplex copia, et plus quam scrollable. Continens scrollable potest esse
<body>
vel elementum consuetudinis cum statutoheight
etoverflow-y: scroll
. -
In vase scrollable, adde
data-bs-spy="scroll"
etdata-bs-target="#navId"
ubinavId
est unicaid
sociarum navigationis. Vide etiamtabindex="0"
ut aditum claviaturae curet. -
Sicut vas "exploratum" librum habes,
.active
genus additur et removetur ab ancoris nexibus intra navigationem adiunctam. Vincula scuta resolubilia habere debentid
, alioquin neglecta sunt. Exempli gratia,<a href="#home">home</a>
debet respondere alicui in dom<div id="home"></div>
-
Scopum elementa non visibilia erunt neglecta. Vide sectionem elementorum non visibilium infra.
Exempla
Navbar
Librum aream sub navbare et mutationem classis activae observa. Aperi menu dropdown et custodiant stillicidium items ut bene illustrari possit.
Primum capite
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Secundo capite
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Tertium caput
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Quartum caput
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Quintus capite
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
<nav id="navbar-example2" class="navbar bg-light px-3 mb-3">
<a class="navbar-brand" href="#">Navbar</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 dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#scrollspyHeading3">Third</a></li>
<li><a class="dropdown-item" href="#scrollspyHeading4">Fourth</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#scrollspyHeading5">Fifth</a></li>
</ul>
</li>
</ul>
</nav>
<div data-bs-spy="scroll" data-bs-target="#navbar-example2" data-bs-root-margin="0px 0px -40%" data-bs-smooth-scroll="true" class="scrollspy-example bg-light p-3 rounded-2" tabindex="0">
<h4 id="scrollspyHeading1">First heading</h4>
<p>...</p>
<h4 id="scrollspyHeading2">Second heading</h4>
<p>...</p>
<h4 id="scrollspyHeading3">Third heading</h4>
<p>...</p>
<h4 id="scrollspyHeading4">Fourth heading</h4>
<p>...</p>
<h4 id="scrollspyHeading5">Fifth heading</h4>
<p>...</p>
</div>
Neded nav
Scrollspy item opera nidos .nav
s. Si nidos .nav
, .active
et parentes ejus erunt .active
. Scroll aream navbari proximam et mutationem classis activae speculare.
Item 1
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 1-1
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 1-2
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 2
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 3
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 3-1
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
Item 3-2
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Mementote plugin JavaScript conatur decerpere elementum rectum inter omnia quae visibiles sunt. Scuta multa conspicua scrollspy simul aliquas quaestiones causare possunt.
<div class="row">
<div class="col-4">
<nav id="navbar-example3" class="h-100 flex-column align-items-stretch pe-4 border-end">
<nav class="nav nav-pills flex-column">
<a class="nav-link" href="#item-1">Item 1</a>
<nav class="nav nav-pills flex-column">
<a class="nav-link ms-3 my-1" href="#item-1-1">Item 1-1</a>
<a class="nav-link ms-3 my-1" href="#item-1-2">Item 1-2</a>
</nav>
<a class="nav-link" href="#item-2">Item 2</a>
<a class="nav-link" href="#item-3">Item 3</a>
<nav class="nav nav-pills flex-column">
<a class="nav-link ms-3 my-1" href="#item-3-1">Item 3-1</a>
<a class="nav-link ms-3 my-1" href="#item-3-2">Item 3-2</a>
</nav>
</nav>
</nav>
</div>
<div class="col-8">
<div data-bs-spy="scroll" data-bs-target="#navbar-example3" data-bs-smooth-scroll="true" class="scrollspy-example-2" tabindex="0">
<div id="item-1">
<h4>Item 1</h4>
<p>...</p>
</div>
<div id="item-1-1">
<h5>Item 1-1</h5>
<p>...</p>
</div>
<div id="item-1-2">
<h5>Item 1-2</h5>
<p>...</p>
</div>
<div id="item-2">
<h4>Item 2</h4>
<p>...</p>
</div>
<div id="item-3">
<h4>Item 3</h4>
<p>...</p>
</div>
<div id="item-3-1">
<h5>Item 3-1</h5>
<p>...</p>
</div>
<div id="item-3-2">
<h5>Item 3-2</h5>
<p>...</p>
</div>
</div>
</div>
</div>
List group
Scrollspy etiam opera .list-group
s. Librum aream iuxta numerum indicem ac mutationem classis activae speculabuntur.
Item 1
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 2
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 3
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 4
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
<div class="row">
<div class="col-4">
<div id="list-example" class="list-group">
<a class="list-group-item list-group-item-action" href="#list-item-1">Item 1</a>
<a class="list-group-item list-group-item-action" href="#list-item-2">Item 2</a>
<a class="list-group-item list-group-item-action" href="#list-item-3">Item 3</a>
<a class="list-group-item list-group-item-action" href="#list-item-4">Item 4</a>
</div>
</div>
<div class="col-8">
<div data-bs-spy="scroll" data-bs-target="#list-example" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0">
<h4 id="list-item-1">Item 1</h4>
<p>...</p>
<h4 id="list-item-2">Item 2</h4>
<p>...</p>
<h4 id="list-item-3">Item 3</h4>
<p>...</p>
<h4 id="list-item-4">Item 4</h4>
<p>...</p>
</div>
</div>
</div>
Simplex ancoras
Scrollspy non limitatur ad componentes navas et circulos inscriptis, ideo in quolibet <a>
documento ancoris elementa operabitur. Scroll aream et speculam .active
classium mutationem.
Item 1
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 2
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 3
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 4
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
Item 5
Hic est aliquis placeholder paginae chartae contentus. Nota quod ut paginam deprimis, apta nexus navigationis illustratur. Per totum exemplum repetitum est. Exempla quaedam plura hic addendo exemplum ad inculcandum scrolling et illustrandum.
<div class="row">
<div class="col-4">
<div id="simple-list-example" class="d-flex flex-column gap-2 simple-list-example-scrollspy text-center">
<a class="p-1 rounded" href="#simple-list-item-1">Item 1</a>
<a class="p-1 rounded" href="#simple-list-item-2">Item 2</a>
<a class="p-1 rounded" href="#simple-list-item-3">Item 3</a>
<a class="p-1 rounded" href="#simple-list-item-4">Item 4</a>
<a class="p-1 rounded" href="#simple-list-item-5">Item 5</a>
</div>
</div>
<div class="col-8">
<div data-bs-spy="scroll" data-bs-target="#simple-list-example" data-bs-offset="0" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0">
<h4 id="simple-list-item-1">Item 1</h4>
<p>...</p>
<h4 id="simple-list-item-2">Item 2</h4>
<p>...</p>
<h4 id="simple-list-item-3">Item 3</h4>
<p>...</p>
<h4 id="simple-list-item-4">Item 4</h4>
<p>...</p>
<h4 id="simple-list-item-5">Item 5</h4>
<p>...</p>
</div>
</div>
</div>
Non visibile elementa
Elementa scoporum quae non sunt visibilia neglecta erunt et res navales respondentes .active
classem non recipient. Instantiae scrollspy initiales in fasciculo non visibili omnia elementa clypei ignorant. Methodo utere refresh
ad reprimendam elementa observanda semel involucrum visibile fit.
document.querySelectorAll('#nav-tab>[data-bs-toggle="tab"]').forEach(el => {
el.addEventListener('shown.bs.tab', () => {
const target = el.getAttribute('data-bs-target')
const scrollElem = document.querySelector(`${target} [data-bs-spy="scroll"]`)
bootstrap.ScrollSpy.getOrCreateInstance(scrollElem).refresh()
})
})
Consuetudinem
Via data attributa
Ut facile cartis mores ad navigationem topbaris tuam addas data-bs-spy="scroll"
, elementum quod vis explorare (plerumque hoc futurum est <body>
) adde elementum. Adde data-bs-target
attributum cum id
vel classe nomen elementi parentis alicujus .nav
componentis Bootstrap.
<body data-bs-spy="scroll" data-bs-target="#navbar-example">
...
<div id="navbar-example">
<ul class="nav nav-tabs" role="tablist">
...
</ul>
</div>
...
</body>
Via JavaScript
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar-example'
})
Optiones
Cum optiones transeantur per data attributa vel JavaScript, potes appendere nomen optionis data-bs-
, ut in data-bs-animation="{value}"
. Fac mutare casus genus optionis nominis ab " camelCase " ad " kebab-casum " cum transeundo optiones per data attributa. Exempli gratia data-bs-custom-class="beautifier"
loco data-bs-customClass="beautifier"
.
Sicut de Bootstrap 5.2.0, omnia membra experimentalem datam reservatam sustinent data-bs-config
quae figuram simplicem componentem sicut chorda JSON domum habere potest. Cum elementum habet data-bs-config='{"delay":0, "title":123}'
et data-bs-title="456"
attributa, valor finalis title
erit 456
et attributa separata data valores supra datos vincent data-bs-config
. Praeterea exsistentes notitiae attributae possunt domum JSON valores similes data-bs-delay='{"show":0,"hide":150}'
.
Nomen | Type | Default | Descriptio |
---|---|---|---|
rootMargin |
filum | 0px 0px -25% |
Intersectio Observator unitatibus rootMargin valida, cum librum positio computandi. |
smoothScroll |
Boolean | false |
Expeditum scrollingum cum usoris clicks in nexum quod spectat ad ScrollSpy observabiles dat. |
target |
chorda, dom elementum | null |
Elementum specificat ut plugin Scrollspy adhibere. |
threshold |
ordinata | [0.1, 0.5, 1] |
IntersectionObserver limina valida input, cum librum positio computandi. |
Deprecatus Options
Usque ad v5.1.3 utentes offset
& method
optiones, quæ nunc deprecamur & reponimus rootMargin
. Retrorsum compatibilitatem retinere , datam ad parse pergamus offset
, sed haec pluma in v6rootMargin
tolletur .
Methodi
Methodus | Descriptio |
---|---|
dispose |
Destructio elementi scrollspy. (Recondita removet data in dom elementum) |
getInstance |
Statica methodus obtinendi instantia in scrollspy elemento dom coniungitur. |
getOrCreateInstance |
Statica methodus ut instantia cartispy cum elemento DOM coniungitur, vel novum creare in casu initiali non erat. |
refresh |
Cum addere vel removere elementa in DOM, vocare debes methodum reficiendi. |
Ecce exemplum methodi reficiendi utens:
const dataSpyList = document.querySelectorAll('[data-bs-spy="scroll"]')
dataSpyList.forEach(dataSpyEl => {
bootstrap.ScrollSpy.getInstance(dataSpyEl).refresh()
})
Events
Eventus | Descriptio |
---|---|
activate.bs.scrollspy |
Eventus ille ignes in librum elementi quotiens ancora a cartis agitatur. |
const firstScrollSpyEl = document.querySelector('[data-bs-spy="scroll"]')
firstScrollSpyEl.addEventListener('activate.bs.scrollspy', () => {
// do something...
})