Scrollspy rehegua
Embopyahu ijeheguiete Bootstrap jeguata térã lista aty componentekuéra oñemopyendáva desplazamiento ñemohenda rehe ohechauka hag̃ua mbaꞌe joajuhapa oĩ koꞌág̃aite activo jehechaukaha-pe.
Mba’éichapa omba’apo
Scrollspy ombohasa .active
mboꞌepy umi elemento ancla ( <a>
) rehegua ojedesplaza jave jehechaukarãme pe elemento orekóva id
referenciado umi ancla rehegua href
. Scrollspy ojepuru porãve oñembojoajúvo peteĩ componente nav Bootstrap térã lista aty ndive , ha katu ombaꞌapóta avei oimeraẽ elemento ancla rehegua ndive oĩva página koꞌag̃aguápe. Péina mba'éichapa omba'apo.
-
Oñepyrũ hag̃ua, scrollspy oikotevẽ mokõi mbaꞌe: peteĩ jeguata, lista aty térã peteĩ enlace simple, ha avei peteĩ mbaꞌeryru ojedesplazakuaáva. Pe mbaꞌeryru ojedesplazakuaáva ikatu haꞌe pe
<body>
térã peteĩ elemento personalizado orekóva peteĩ conjuntoheight
haoverflow-y: scroll
. -
Pe mba’e’oka ojedesplazakuaávape, emoĩ
data-bs-spy="scroll"
hadata-bs-target="#navId"
moõpanavId
oĩ pe ijojaha’ỹvaid
pe navegación ojoajúva rehegua. Ejesareko avei emoĩtabindex="0"
hag̃ua peteĩ easegura hag̃ua teclado jeike. -
Ojedesplazávo contenedor “espiado”,
.active
oñembojoapy ha ojeipe’a peteĩ clase umi enlace anclaje-gui navegación asociada ryepýpe. Umi joajuha oguerekova’erã umi mba’e’oka ojerresolvévaid
, ndaupéichairamo oñemboyke. Techapyrã, peteĩ<a href="#home">home</a>
okorrespondevaꞌerã peteĩ mbaꞌe oĩva DOM-pe haꞌeháicha<div id="home"></div>
-
Umi elemento destino ndojehecháiva oñemboykéta. Ehecha pe sección Elementos ndojehecháiva iguýpe.
Tembiecharã
Navbar rehegua
Emoinge pe área oĩva navbar guýpe ha ehecha pe clase activa ñemoambue. Eipe’a menú desplegable ha ehecha umi mba’e desplegable ojehechauka avei.
Peteĩha rubro
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Mokõiha rubro
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Mbohapyha vore
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Irundyha vore
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Pokõiha rubro
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
<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 rehegua
Scrollspy ombaꞌapo avei .nav
s anidado reheve. Peteĩ anidado .nav
ha'éramo .active
, ituvakuéra ha'éta avei .active
. Emoinge pe área oĩva navbar ykére ha ehecha pe clase activa ñemoambue.
Artículo 1 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 1-1 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 1-2 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 2 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 3 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 3-1 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
Artículo 3-2 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Eñongatu ne akãme JavaScript mboajepyréva oñeha’ãha oiporavo elemento oikeporãva opaite ikatúva ojehecha apytépe. Heta ojehecháva scrollspy blanco peteĩ jave ikatu omoheñói algunos problemas.
<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>
Aty lista rehegua
Scrollspy omba’apo avei .list-group
s ndive. Emoinge pe área oĩva lista aty ykére ha ehecha pe clase activa ñemoambue.
Artículo 1 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 2 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 3 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 4 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
<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>
Anclaje simple rehegua
Scrollspy ndaha’éi componente nav ha lista aty’ípe añoite, upévare omba’apóta oimeraẽ <a>
elemento anclaje rehe kuatia ko’ag̃aguápe. Ejedesplaza pe área ha ehecha pe .active
clase okambiaha.
Artículo 1 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 2 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 3 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 4 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
Artículo 5 rehegua
Kóva ha’e peteĩ contenido tenda’i rehegua scrollspy página-pe g̃uarã. Eñatendéke redesplaza jave pe páhinape, ojerresaltaha pe enlace de navegación oĩ porãva. Oje’e jey componente techapyrã pukukue javeve. Ñamoĩ meme ko’ápe peteĩ copia techapyrãve ñamomba’eguasu haĝua pe desplazamiento ha resaltado.
<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>
Umi elemento ndojehecháiva
Umi elemento destino ndojehecháiva oñemboykéta ha umi elemento nav okorrespondéva ndohupytýi peteĩ .active
clase. Umi instancia Scrollspy oñepyrũva peteĩ envoltura ndojehecháivape omboykéta opaite elemento destino rehegua. Eipuru pe refresh
método ehecha hagua umi elemento ojehechakuaáva ojehecha rire pe envoltura.
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()
})
})
Jeporu rehegua
Umi atributo de datos rupive
Oñemoĩ hag̃ua scrollspy jeiko pya’e nde barra yvategua jeguatarãme, emoĩve data-bs-spy="scroll"
pe elemento ehechasévape (jepiveguaichavéva kóva ha’éta pe <body>
). Upéi emoĩve data-bs-target
atributo orekóva id
térã clase réra elemento túva oimeraẽva .nav
componente Bootstrap rehegua.
<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 rupive
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar-example'
})
Opciones rehegua
Umi opción ikatuháicha oñembohasa atributo de datos térã JavaScript rupive, ikatu emoĩ peteĩ opción réra data-bs-
, -peguáicha data-bs-animation="{value}"
. Ejesareko emoambue hag̃ua káso tipo opción réra “ camelCase ”-gui “ kebab-case ”-pe embohasávo umi opción atributo de datos rupive. Por ehémplo, eipuru data-bs-custom-class="beautifier"
rangue data-bs-customClass="beautifier"
.
Bootstrap 5.2.0 guive, opaite componente oipytyvõ peteĩ atributo dato reservado experimentaldata-bs-config
ikatúva oñemohenda componente configuración simple peteĩ cadena JSON ramo. Peteĩ elemento oguerekóramo data-bs-config='{"delay":0, "title":123}'
ha data-bs-title="456"
atributo, pe valor paha title
haꞌeta 456
ha umi atributo dato rehegua añónte omboykéta umi valor oñemeꞌevaꞌekue data-bs-config
. Avei, umi atributo dato rehegua oĩmava ikatu oguereko JSON mbaꞌekuaarã data-bs-delay='{"show":0,"hide":150}'
.
Téra | Hesegua | Upevakuére | Techaukaha |
---|---|---|---|
rootMargin |
sã | 0px 0px -25% |
Intersección Observer rootMargin unidades válidas, oñecalcula jave posición desplazamiento rehegua. |
smoothScroll |
booleano rehegua | false |
Ombohapéva desplazamiento suave peteĩ puruhára oity jave peteĩ enlace oñe’ẽva ScrollSpy observables rehe. |
target |
cadena, elemento DOM rehegua | null |
Omombeꞌu elemento ojepuru hag̃ua Scrollspy plugin. |
threshold |
matriz rehegua | [0.1, 0.5, 1] |
IntersectionObserver umbral entrada válida, oñecalcula jave posición desplazamiento rehegua. |
Opciones ndojeporúiva
v5.1.3 peve roipuruva’ekue offset
& method
opciones, ko’áĝa ndojepuruvéimava ha oñemyengoviáva rootMargin
. Ñañongatu hag̃ua joaju tapykue gotyo, jasegíta ñahesa’ỹijo peteĩ oñeme’ẽva offset
, rootMargin
ha katu ko mba’ekuaarã ojeipe’áta v6 -pe .
Método-kuéra rehegua
Tapereko | Techaukaha |
---|---|
dispose |
Ohundi peteĩ elemento scrollspy. (Oipeꞌa umi dato oñeñongatúva elemento DOM-pe) |
getInstance |
Método estático ojehupyty hag̃ua instancia scrollspy ojoajúva peteĩ elemento DOM rehe. |
getOrCreateInstance |
Método estático ojehupyty hag̃ua instancia scrollspy ojoajúva peteĩ elemento DOM ndive, térã ojejapo hag̃ua peteĩ pyahu en caso noñemoñepyrũi. |
refresh |
Oñemoĩ térã ojeipeꞌa jave elemento DOM-pe, tekotevẽta oñehenói método ñembopyahu rehegua. |
Ko’ápe oĩ peteĩ techapyrã ojeporúvo método refresco:
const dataSpyList = document.querySelectorAll('[data-bs-spy="scroll"]')
dataSpyList.forEach(dataSpyEl => {
bootstrap.ScrollSpy.getInstance(dataSpyEl).refresh()
})
Umi mba’e oikóva
Jeguerohyha | Techaukaha |
---|---|
activate.bs.scrollspy |
Ko mbaꞌe ojehúva odispara elemento desplazamiento rehe oñemboguata jave peteĩ ancla scrollspy rupive. |
const firstScrollSpyEl = document.querySelector('[data-bs-spy="scroll"]')
firstScrollSpyEl.addEventListener('activate.bs.scrollspy', () => {
// do something...
})