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 .active
claseta ancla ( <a>
) elementokunapi tikran mayk'aq elementowan id
referenciasqa anchor's href
qhawayman 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ñuwanheight
chaymantaoverflow-y: scroll
. -
Kuyuchina waqaychanapi, yapay
data-bs-spy="scroll"
chaymantadata-bs-target="#navId"
maypinavId
sapallaid
tinkisqa puriymanta kachkan. Aseguraypas huktabindex="0"
tecladoman yaykuyta garantizanaykipaq. -
“Espiado” waqaychanata kuyuchisqaykimanhina, huk
.active
clase yapasqa chaymanta ancla t'inkikunamanta hurqusqa tinkisqa puriy ukhupi. T'inkikunaqa allichanapaqid
metakunayuqmi 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 nisqa
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 .nav
s nisqawanpas. Sichus huk nested .nav
kan 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-group
Scrollspy 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 .active
clase 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 .active
claseta chaskinqachu. Mana rikukuq p'istupi qallarisqa Scrollspy instanciakuna llapa meta elementokunata mana qhawanqachu. Método refresh
nisqawanmi 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-target
atributo kaqwan id
utaq clase sutiwan tayta elemento mayqin Bootstrap .nav
componente 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-config
mayqinchus 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 title
chanin kanqa 456
chaymanta 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
& method
akllanakunata llamk'achkarqayku, kunan manaña llamk'achisqachu chaymanta rootMargin
. offset
Qhipaman 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...
})