Skip to main content Skip ad navigationem soUicitudo
Check
in English

Scrollspy

Automatarie renovatio Bootstrap navigationis vel listarum partium secundum librum positionis ad indicandum quae ligatio actuosa est in prospectu.

Quomodo facitur

Scrollspy elementa .activein anchoris classe toggles <a>cum elementum cum idreferenced per ancorae in conspectum libratum hrefest. 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 statuto heightet overflow-y: scroll.

  • In vase scrollable, adde data-bs-spy="scroll"et data-bs-target="#navId"ubi navIdest unica idsociarum navigationis. Vide etiam tabindex="0"ut aditum claviaturae curet.

  • Sicut vas "exploratum" librum habes, .activegenus additur et removetur ab ancoris nexibus intra navigationem adiunctam. Vincula scuta resolubilia habere debent id, 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

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 .navs. Si nidos .nav, .activeet 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-groups. 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 .activeclassium 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 .activeclassem non recipient. Instantiae scrollspy initiales in fasciculo non visibili omnia elementa clypei ignorant. Methodo utere refreshad 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-targetattributum cum idvel classe nomen elementi parentis alicujus .navcomponentis 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-configquae 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 titleerit 456et 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& methodoptiones, 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...
})