Saltar al contenido principal Salta a docs navegación
Check
in English

Scrollspy nisqa

Kikinmanta musuqchay Bootstrap puriyta utaq lista qutu componentekuna kuyuchiy posición kaqpi mayqin t'inki kunan qhawana punkupi ruwasqa kaqta rikuchinapaq.

Imayna llamkan

Scrollspy .activeclaseta ancla ( <a>) elementokunapi tikran mayk'aq elementowan idreferenciasqa anchor's hrefqhawayman kuyuchisqa kachkan. Scrollspy aswan allin llamk'achisqa huk Bootstrap nav componente utaq lista qutuwan kuskachasqa , ichaqa llamkanqataq mayqin ancla elementokunawanpas kunan p'anqapi. Kaypi imayna llamk'asqanmanta.

  • Qallarinapaq, scrollspy iskay imakunata munan: huk puriy, lista huñu utaq huk sanu t'inkikuna huñu, chaymanta huk kuyuchina waqaychana. Kuyuchina waqaychanaqa kanmanmi chay <body>icha huk sapanchasqa elemento huk huñuwan heightchaymanta overflow-y: scroll.

  • Kuyuchina waqaychanapi, yapay data-bs-spy="scroll"chaymanta data-bs-target="#navId"maypi navIdsapalla idtinkisqa puriymanta kachkan. Aseguraypas huk tabindex="0"tecladoman yaykuyta garantizanaykipaq.

  • “Espiado” waqaychanata kuyuchisqaykimanhina, huk .activeclase yapasqa chaymanta ancla t'inkikunamanta hurqusqa tinkisqa puriy ukhupi. T'inkikunaqa allichanapaq idmetakunayuqmi kanan, mana chayqa mana qhawasqam. Ejemplopaq, huk <a href="#home">home</a>imapas DOM nisqapi hina tupanan<div id="home"></div>

  • Mana rikukuq elementokuna metakuna mana qhawasqachu kanqa. Uraypi Mana rikukuq elementokuna rakita qhaway.

Ejemplos

Navbar urapi kaq áreata kuyuchiy chaymanta qhaway activo clase tikrayta. Kichay urayk’aq menú nisqapi hinaspa qhaway urayk’aq kaqkunapas resaltasqa kananpaq.

Ñawpaq kaq umalliq

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Iskay kaq umalliq

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Kimsa kaq umalliq

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Tawa kaq umalliq

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Pichqa kaq umalliq

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

<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>

Anidado nav

Scrollspy llamkantaqmi anidado .navs nisqawanpas. Sichus huk nested .navkan chayqa .active, tayta-mamanpas kanqa .active. Navbarpa waqtanpi kaq áreata kuyuchiy chaymanta qhaway activo clase tikrayta.

Artículo 1

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 1-1

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 1-2

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 2

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 3

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 3-1

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

Artículo 3-2

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Yuyaypi hap'iy JavaScript plugin allin elementota akllayta munan tukuy rikukuqkunamanta. Achka rikukuq scrollspy metakuna huk pachallapi wakin sasachakuykunata ruwanman.

<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>

Lista qutu

.list-groupScrollspy nisqapas s nisqawanmi llamkan . Lista qutupa waqtanpi kaq chiqanpi puriy chaymanta qhaway activo clase tikrayta.

Artículo 1

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 2

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 3

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 4

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

<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>

Anclajes simples

Scrollspy mana nav componentekuna chaymanta lista qutukunallachu, chayrayku <a>kunan qillqapi mayqin ancla elementokunapipas llamkanqa. Chay cheqaspi puriy hinaspa qhaway .activeclase cambiasqanta.

Artículo 1

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 2

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 3

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 4

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

Artículo 5

Kayqa wakin tiyanayuq willaymi scrollspy p'anqapaq. Reparay, p’anqata urayman purisqaykiman hina, chayman hina purinapaq t’inki resaltasqa kashan. Chayqa yapamanta ruwakun tukuy componente ejemplopi. Kaypi wakin aswan ejemplo copiata yapaykupuni, chaywantaq desplazamientota, resaltayta ima astawan kallpachayku.

<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>

Mana rikukuq elementokuna

Mana rikukuq elementokuna meta kaqmanta mana qhawasqachu kanqa chaymanta tupaq nav elementokuna mana huk .activeclaseta chaskinqachu. Mana rikukuq p'istupi qallarisqa Scrollspy instanciakuna llapa meta elementokunata mana qhawanqachu. Método refreshnisqawanmi qawanapaq elementokunata qawana, huk kuti p’istu rikukuq kaptin.

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()
  })
})

Uso

Atributos de datos nisqawan

Scrollspy ruwayta mana sasachu yapanaykipaq pata barra puriyniykiman, yapay data-bs-spy="scroll"elementoman yapay mayqinpichus espionayta munanki (aswan típicamente kay kanman chay <body>). Chaymanta yapay data-bs-targetatributo kaqwan idutaq clase sutiwan tayta elemento mayqin Bootstrap .navcomponente kaqmanta.

<body data-bs-spy="scroll" data-bs-target="#navbar-example">
  ...
  <div id="navbar-example">
    <ul class="nav nav-tabs" role="tablist">
      ...
    </ul>
  </div>
  ...
</body>

JavaScript nisqawan

const scrollSpy = new bootstrap.ScrollSpy(document.body, {
  target: '#navbar-example'
})

Akllanakuna

Imaynachus akllanakuna willay layakuna utaq JavaScript kaqninta pasayta atikun, huk akllana sutita yapayta atikunki kayman data-bs-, imaynachus data-bs-animation="{value}". Aseguray akllana sutimanta caso laya “ camelCase ” kaqmanta “ kebab-case ” kaqman tikrayta mayk’aq akllanakunata atributos de datos kaqninta pasaspa. Ejemplopaq data-bs-custom-class="beautifier", data-bs-customClass="beautifier".

Bootstrap 5.2.0 kaqmanta, llapa componentakuna huk experimental waqaychasqa willay laya yanapakuyta yanapakunku data-bs-configmayqinchus JSON watiqa hina sanu componente ruwayta wasichayta atin. Huk elemento data-bs-config='{"delay":0, "title":123}'chaymanta data-bs-title="456"layakunayuq kaqtin, qhipa titlechanin kanqa 456chaymanta sapaq willay layakuna qusqa chanikunata llallichinqa data-bs-config. Chaymanta, kunan kaq willay layakuna JSON chanikunata wasichayta atinku kayhina data-bs-delay='{"show":0,"hide":150}'.

Suti Niraq Ñawpaqchasqa Willay
rootMargin qaytu 0px 0px -25% Intersección Observer rootMargin allin unidadkuna, kuyuchiypa kayninta yupaspa.
smoothScroll boolean nisqa false Sumaq kuyuchiyta atichin mayk'aq huk llamk'achiq huk t'inkipi ñit'in mayqinchus ScrollSpy qhawanakunaman riqsichin.
target cadena, elemento DOM nisqa null Scrollspy plugin churanapaq elemento nisqa.
threshold matriz [0.1, 0.5, 1] IntersectionObserver umbral valido yaykuchiy, maypachachus yupakun posición de desplazamiento.

Mana llamk’achisqa Akllanakuna

v5.1.3 kaqkama offset& methodakllanakunata llamk'achkarqayku, kunan manaña llamk'achisqachu chaymanta rootMargin. offsetQhipaman tupachiyta waqaychaypaq, huk qusqa kaqman t'aqwiyta hinalla ruwasaqku rootMargin, ichaqa kay ruwana v6 kaqpi hurqusqa kanqa .

Métodos

Imayna Willay
dispose Huk elementopa scrollspy nisqatam chinkachin. (DOM elementopi waqaychasqa willayta hurqun)
getInstance Método estático huk DOM elementowan tinkisqa scrollspy instanciata chaskinapaq.
getOrCreateInstance Método estático scrollspy instanciata huk DOM elementowan tinkisqata hapinapaq, utaq musuq ruwanapaq sichus mana qallarisqachu karqa.
refresh DOM kaqpi elementokunata yapaspa utaq hurquchkaspa, musuqyachiy ñanta waqyanayki tiyan.

Kaypi huk rikch'ana kachkan musuqyachiy ñanta llamk'achispa:

const dataSpyList = document.querySelectorAll('[data-bs-spy="scroll"]')
dataSpyList.forEach(dataSpyEl => {
  bootstrap.ScrollSpy.getInstance(dataSpyEl).refresh()
})

Eventos nisqakuna

Ruwana Willay
activate.bs.scrollspy Kay ruwayqa kuyuchina elementopi rawrarin mayk'aqllapas huk ancla scrollspy kaqwan llamk'achisqa.
const firstScrollSpyEl = document.querySelector('[data-bs-spy="scroll"]')
firstScrollSpyEl.addEventListener('activate.bs.scrollspy', () => {
  // do something...
})