Scrollspy
Nuashonraigh go huathoibríoch nascleanúint Bootstrap nó liostaigh comhpháirteanna grúpa bunaithe ar shuíomh an scrolla chun a chur in iúl cén nasc atá gníomhach san amharclann faoi láthair.
Conas a oibríonn sé
Tá roinnt riachtanas ag Scrollspy chun feidhmiú i gceart:
- Ní mór é a úsáid ar chomhpháirt nascleanúna Bootstrap nó ar ghrúpa liostaí .
- Éilíonn Scrollspy
position: relative;
ar an eilimint a bhfuil tú ag spying air, de ghnáth an<body>
. - Tá ancairí (
<a>
) ag teastáil agus ní mór dóibh gné a chur in iúl leis sinid
.
Nuair a chuirtear i bhfeidhm go rathúil é, déanfaidh do ghrúpa nascleanúna nó liostaí nuashonrú dá réir, ag bogadh an .active
rang ó mhír amháin go dtí an chéad cheann eile bunaithe ar na spriocanna a bhaineann leo.
Coimeádáin inscrollaithe agus rochtain mhéarchláir
Má tá coimeádán inscrollaithe á dhéanamh agat (seachas an <body>
), cinntigh go bhfuil height
tacar agat agus overflow-y: scroll;
go gcuirtear i bhfeidhm air — in éineacht le tabindex="0"
a chun rochtain mhéarchláir a chinntiú.
Sampla i navbar
Scrollaigh an limistéar faoi bhun an bharra nascleanúna agus féach ar an athrú gníomhach ranga. Cuirfear béim ar na míreanna anuas freisin.
An chéad cheannteideal
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
An dara ceannteideal
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
An tríú ceannteideal
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Ceathrú ceannteideal
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
An cúigiú ceannteideal
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
<nav id="navbar-example2" class="navbar navbar-light bg-light px-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-offset="0" class="scrollspy-example" 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>
Sampla le nav neadaithe
Oibríonn Scrollspy freisin le neadaithe .nav
s. .nav
Má tá nead .active
, beidh a thuismitheoirí freisin .active
. Scrollaigh an limistéar in aice leis an mbarra nascleanúna agus féach ar an athrú gníomhach ranga.
Mír 1
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 1-1
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 1-2
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 2
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 3
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 3-1
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 3-2
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
<nav id="navbar-example3" class="navbar navbar-light bg-light flex-column align-items-stretch p-3">
<a class="navbar-brand" href="#">Navbar</a>
<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 data-bs-spy="scroll" data-bs-target="#navbar-example3" data-bs-offset="0" tabindex="0">
<h4 id="item-1">Item 1</h4>
<p>...</p>
<h5 id="item-1-1">Item 1-1</h5>
<p>...</p>
<h5 id="item-1-2">Item 1-2</h5>
<p>...</p>
<h4 id="item-2">Item 2</h4>
<p>...</p>
<h4 id="item-3">Item 3</h4>
<p>...</p>
<h5 id="item-3-1">Item 3-1</h5>
<p>...</p>
<h5 id="item-3-2">Item 3-2</h5>
<p>...</p>
</div>
Sampla le liosta-ghrúpa
Oibríonn Scrollspy freisin le .list-group
s. Scrollaigh an limistéar in aice leis an ngrúpa liosta agus féach ar an athrú gníomhach ranga.
Mír 1
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 2
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 3
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
Mír 4
Seo roinnt ábhar áitshealbhóir don leathanach scrollspy. Tabhair faoi deara, agus tú ag scrollú síos an leathanach, go bhfuil an nasc loingseoireachta cuí aibhsithe. Déantar é a athdhéanamh ar fud an sampla comhpháirte. Leanaimid de bheith ag cur cóip shamplach níos mó anseo chun béim a chur ar an scrollú agus ar an aibhsiú.
<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 data-bs-spy="scroll" data-bs-target="#list-example" data-bs-offset="0" 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>
Úsáid
Trí tréithe sonraí
Chun iompar scrollspy a chur le do nascleanúint barrbharra go héasca, cuir data-bs-spy="scroll"
leis an eilimint a bhfuil tú ag iarraidh spiaireacht a dhéanamh air (go hiondúil is é seo an <body>
). Ansin cuir an data-bs-target
tréith leis an ID nó le haicme na máthaireiliminte d'aon .nav
chomhpháirt Bootstrap.
body {
position: relative;
}
<body data-bs-spy="scroll" data-bs-target="#navbar-example">
...
<div id="navbar-example">
<ul class="nav nav-tabs" role="tablist">
...
</ul>
</div>
...
</body>
Trí JavaScript
Tar éis position: relative;
duit do CSS a chur isteach, cuir glaoch ar an scrollspy trí JavaScript:
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar-example'
})
Spriocanna aitheantais inréite ag teastáil
Caithfidh spriocanna aitheantais inréite a bheith ag naisc Navbar. Mar shampla, <a href="#home">home</a>
ní mór a fhreagraíonn do rud éigin sa DOM cosúil le <div id="home"></div>
.
Neamhaird ar sprioceilimintí dofheicthe
Ní thabharfar aird ar sprioc-eilimintí nach bhfuil infheicthe agus ní thaispeánfar a n-ítimí nascleanúna comhfhreagracha choíche.
Modhanna
athnuachan
Agus scrollspy in úsáid in éineacht le heilimintí a chur leis nó a bhaint den DOM, beidh ort an modh athnuachana a ghlaoch mar seo:
var dataSpyList = [].slice.call(document.querySelectorAll('[data-bs-spy="scroll"]'))
dataSpyList.forEach(function (dataSpyEl) {
bootstrap.ScrollSpy.getInstance(dataSpyEl)
.refresh()
})
a dhiúscairt
Scriosann scrollspy eilimint. (Baintear sonraí stóráilte ar an eilimint DOM)
faighInstance
Modh statach a ligeann duit an ásc scrollspy a bhaineann le heilimint DOM a fháil
var scrollSpyContentEl = document.getElementById('content')
var scrollSpy = bootstrap.ScrollSpy.getInstance(scrollSpyContentEl) // Returns a Bootstrap scrollspy instance
getOrCreateInstance
Modh statach a cheadaíonn duit an t-ásc scrollspy a bhaineann le heilimint DOM a fháil, nó ceann nua a chruthú ar eagla nach bhfuil sé inisealaithe
var scrollSpyContentEl = document.getElementById('content')
var scrollSpy = bootstrap.ScrollSpy.getOrCreateInstance(scrollSpyContentEl) // Returns a Bootstrap scrollspy instance
Roghanna
Is féidir roghanna a chur ar aghaidh trí tréithe sonraí nó JavaScript. Maidir le tréithe sonraí, cuir ainm na rogha i gceangal le data-bs-
, mar atá i data-bs-offset=""
.
Ainm | Cineál | Réamhshocrú | Cur síos |
---|---|---|---|
offset |
uimhir | 10 |
Picteilíní le fritháireamh ón mbarr agus suíomh an scrolla á ríomh. |
method |
teaghrán | auto |
Aimsítear cén chuid ina bhfuil an eilimint spied. auto roghnóidh sé an modh is fearr chun comhordanáidí scrollaithe a fháil. offset úsáidfidh sé an Element.getBoundingClientRect() modh chun comhordanáidí scrollaithe a fháil. position úsáidfidh an HTMLElement.offsetTop agus HTMLElement.offsetLeft airíonna chun comhordanáidí scrollbharra a fháil. |
target |
teaghrán | réad jQuery | eilimint DOM | Sonraítear eilimint chun breiseán Scrollspy a chur i bhfeidhm. |
Imeachtaí
Cineál imeachta | Cur síos |
---|---|
activate.bs.scrollspy |
Buaileann an teagmhas seo an eilimint scrollbharra aon uair a ghníomhaíonn an scrollspy mír nua. |
var firstScrollSpyEl = document.querySelector('[data-bs-spy="scroll"]')
firstScrollSpyEl.addEventListener('activate.bs.scrollspy', function () {
// do something...
})