scrollspy
په اتوماتيک ډول د بوټسټریپ نیویګیشن تازه کړئ یا د سکرول موقعیت پراساس د ګروپ اجزا لیست کړئ ترڅو وښیې چې کوم لینک اوس مهال په لید پورټ کې فعال دی.
څنګه کار کوي
Scrollspy د سم کار کولو لپاره یو څو اړتیاوې لري:
- دا باید د Bootstrap nav برخې یا لیست ګروپ کې وکارول شي .
- Scrollspy
position: relative;
هغه عنصر ته اړتیا لري چې تاسو یې جاسوسي کوئ، معمولا د<body>
. - اینکرونه (
<a>
) اړین دي او باید د دې سره یو عنصر ته اشاره وکړيid
.
کله چې په بریالیتوب سره پلي شي، ستاسو د نیوی یا لیست ګروپ به د دې مطابق تازه شي، .active
ټولګي د دوی اړوند اهدافو پراساس له یو توکي څخه بل ته حرکت کوي.
د سکرول وړ کانټینرونه او کیبورډ لاسرسی
که تاسو د سکرول کولو وړ کانټینر جوړوئ (د <body>
) څخه پرته، ډاډ ترلاسه کړئ چې یو height
سیټ ولرئ او overflow-y: scroll;
په هغې باندې پلي کړئ — د tabindex="0"
کیبورډ لاسرسي ډاډ ترلاسه کولو لپاره.
په navbar کې مثال
د نیوبار لاندې ساحه سکرول کړئ او د فعال ټولګي بدلون وګورئ. د ښکته کولو توکي به هم روښانه شي.
لومړی سرلیک
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
دوهم سرلیک
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
دریم سرلیک
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
څلورم سرلیک
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
پنځم سرلیک
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
<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>
د nested nav سره مثال
Scrollspy هم د nested .nav
s سره کار کوي. که ځنځیر .nav
وي .active
، مور او پلار به یې هم وي .active
. د نیوبار تر څنګ ساحه سکرول کړئ او د فعال ټولګي بدلون وګورئ.
توکي 1
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 1-1
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 1-2
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 2
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 3
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 3-1
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 3-2
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
<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>
د لیست ګروپ سره بیلګه
Scrollspy هم د .list-group
s سره کار کوي. د لیست ګروپ ته نږدې ساحه سکرول کړئ او د فعال ټولګي بدلون وګورئ.
توکي 1
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 2
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 3
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
توکي 4
دا د scrollspy پاڼې لپاره ځینې ځای لرونکي مینځپانګې دي. په یاد ولرئ لکه څنګه چې تاسو پا pageه ښکته کوئ ، مناسب نیویګیشن لینک روښانه شوی. دا د ټولې برخې مثال کې تکرار شوی. موږ دلته د سکرول کولو او روښانه کولو ټینګار کولو لپاره یو څه نور مثال کاپي اضافه کوو.
<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>
کارول
د معلوماتو ځانګړتیاو له لارې
ستاسو د ټاپ بار نیویګیشن کې په اسانۍ سره د سکرول سپي چلند اضافه کولو data-bs-spy="scroll"
لپاره ، هغه عنصر ته اضافه کړئ چې تاسو یې جاسوس کول غواړئ (ډیری معمولا دا به وي <body>
). بیا data-bs-target
د هر بوټسټریپ .nav
برخې د اصلي عنصر ID یا ټولګي سره صفت اضافه کړئ.
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>
د جاواسکریپټ له لارې
ستاسو په سی ایس ایس کې اضافه کولو وروسته position: relative;
، د جاواسکریپټ له لارې سکرول سپی ته زنګ ووهئ:
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar-example'
})
د حل وړ ID اهداف اړین دي
د Navbar لینکونه باید د حل وړ ID اهداف ولري. د مثال په توګه، یو <a href="#home">home</a>
باید په DOM کې د یو څه سره مطابقت ولري لکه <div id="home"></div>
.
د نه لیدلو هدف عناصر له پامه غورځول شوي
په نښه شوي عناصر چې نه لیدل کیږي له پامه غورځول کیږي او د دوی اړوند نیوی توکي به هیڅکله روښانه نشي.
میتودونه
تازه کول
کله چې د DOM څخه د عناصرو اضافه کولو یا لرې کولو سره په ګډه سکرولسپي وکاروئ ، تاسو اړتیا لرئ د ریفریش میتود ته زنګ ووهئ لکه:
var dataSpyList = [].slice.call(document.querySelectorAll('[data-bs-spy="scroll"]'))
dataSpyList.forEach(function (dataSpyEl) {
bootstrap.ScrollSpy.getInstance(dataSpyEl)
.refresh()
})
تصفیه کول
د یو عنصر سکرول سپی له منځه وړي. (د DOM عنصر کې زیرمه شوي معلومات لرې کوي)
getInstance
جامد میتود چې تاسو ته اجازه درکوي د سکرول سپي مثال ترلاسه کړئ چې د DOM عنصر سره تړاو لري
var scrollSpyContentEl = document.getElementById('content')
var scrollSpy = bootstrap.ScrollSpy.getInstance(scrollSpyContentEl) // Returns a Bootstrap scrollspy instance
getOrCreateInstance
جامد میتود چې تاسو ته اجازه درکوي د DOM عنصر سره تړلی سکرول سپی مثال ترلاسه کړئ ، یا یو نوی رامینځته کړئ که چیرې دا پیل نه وي
var scrollSpyContentEl = document.getElementById('content')
var scrollSpy = bootstrap.ScrollSpy.getOrCreateInstance(scrollSpyContentEl) // Returns a Bootstrap scrollspy instance
اختیارونه
اختیارونه د ډیټا ځانګړتیاو یا جاواسکریپټ له لارې لیږدول کیدی شي. د ډیټا ځانګړتیاو لپاره، د اختیار نوم سره ضمیمه کړئ data-bs-
، لکه څنګه چې په کې data-bs-offset=""
.
نوم | ډول | ډیفالټ | تفصیل |
---|---|---|---|
offset |
شمیره | 10 |
د سکرول موقعیت محاسبه کولو پر مهال له پورتنۍ برخې څخه د خلاصولو لپاره پکسلونه. |
method |
تار | auto |
معلوم کړئ چې جاسوس عنصر په کومه برخه کې دی. auto د سکرول همغږي ترلاسه کولو لپاره غوره میتود غوره کوي. د سکرول همغږي ترلاسه کولو لپاره میتود offset کاروي . د سکرول همغږي ترلاسه کولو لپاره به او ملکیتونه وکاروي .Element.getBoundingClientRect() position HTMLElement.offsetTop HTMLElement.offsetLeft |
target |
تار | jQuery څيز | د DOM عنصر | د Scrollspy پلگ ان پلي کولو لپاره عنصر مشخص کوي. |
پیښې
د پیښې ډول | تفصیل |
---|---|
activate.bs.scrollspy |
دا پیښه د سکرول عنصر باندې ډزې کوي کله چې یو نوی توکي د سکرول سپي لخوا فعال شي. |
var firstScrollSpyEl = document.querySelector('[data-bs-spy="scroll"]')
firstScrollSpyEl.addEventListener('activate.bs.scrollspy', function () {
// do something...
})