اسڪراول اسپيس
خود بخود بوٽ اسٽريپ نيويگيشن کي اپڊيٽ ڪريو يا اسڪرول پوزيشن جي بنياد تي گروپ جي اجزاء کي لسٽ ڪريو انهي کي ظاهر ڪرڻ لاءِ ته ڪھڙي لنڪ في الحال viewport ۾ سرگرم آھي.
اهو ڪيئن ڪم ڪري ٿو
Scrollspy صحيح ڪم ڪرڻ لاءِ ڪجھ گھربل آھن:
- اهو لازمي طور تي استعمال ڪيو وڃي Bootstrap nav جزو يا فهرست گروپ .
- Scrollspy
position: relative;
ان عنصر جي ضرورت آهي جنهن تي توهان جاسوسي ڪري رهيا آهيو، عام طور تي<body>
. - اينڪرز (
<a>
) گھربل آھن ۽ ان سان گڏ ھڪڙي عنصر ڏانھن اشارو ڪرڻ گھرجيid
.
جڏهن ڪاميابيءَ سان لاڳو ٿئي ٿي، توهان جي نيو يا لسٽ گروپ مطابق اپڊيٽ ڪيو ويندو، .active
ڪلاس کي هڪ شئي کان ٻئي ڏانهن منتقل ڪندي انهن جي لاڳاپيل هدفن جي بنياد تي.
سکرولبل ڪنٽينرز ۽ ڪيبورڊ جي رسائي
جيڪڏهن توهان هڪ اسڪربل ڪنٽينر ٺاهي رهيا آهيو (کان سواءِ <body>
)، پڪ ڪريو ته هڪ height
سيٽ آهي ۽ overflow-y: scroll;
ان تي لاڳو ڪيو tabindex="0"
وڃي- ڪي بورڊ جي رسائي کي يقيني بڻائڻ لاءِ.
مثال navbar ۾
نيوبار جي هيٺان علائقي کي اسڪرول ڪريو ۽ فعال طبقي جي تبديلي کي ڏسو. ڊراپ ڊائون شيون پڻ نمايان ڪيون وينديون.
پهريون عنوان
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
ٻيو عنوان
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناس�� نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
ٽيون عنوان
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
چوٿون عنوان
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
پنجون عنوان
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
<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
ٿو. جيڪڏهن نيسٽ .nav
آهي ته .active
ان جا والدين به هوندا .active
. نيوبار جي اڳيان واري علائقي کي اسڪرول ڪريو ۽ فعال طبقي جي تبديلي کي ڏسو.
شئي 1
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 1-1
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 1-2
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 2
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 3
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 3-1
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 3-2
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
<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
ٿو. لسٽ گروپ جي اڳيان واري علائقي کي اسڪرول ڪريو ۽ فعال طبقي جي تبديلي کي ڏسو.
شئي 1
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 2
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 3
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
شئي 4
ھي آھي ڪجھ جڳھ ھولڊر مواد لاءِ scrollspy صفحي. نوٽ ڪريو ته جيئن توھان صفحو ھيٺ لٿو، مناسب نيويگيشن لنڪ نمايان ٿيل آھي. اهو سڄو جزو مثال ۾ بار بار ڪيو ويو آهي. اسان طومار ڪرڻ ۽ نمايان ڪرڻ تي زور ڏيڻ لاءِ هتي ڪجهه وڌيڪ مثال ڪاپي شامل ڪندا رهون ٿا.
<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>
استعمال
ڊيٽا خاصيتن جي ذريعي
آساني سان شامل ڪرڻ لاءِ scrollspy رويي کي پنھنجي ٽاپبار نيويگيشن ۾، data-bs-spy="scroll"
ان عنصر ۾ شامل ڪريو جنھن تي توھان جاسوسي ڪرڻ چاھيو ٿا (اڪثر عام طور تي اھو ھوندو <body>
). پوءِ ڪنهن به بوٽ اسٽريپ جزو data-bs-target
جي والدين عنصر جي ID يا ڪلاس سان وصف شامل ڪريو..nav
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;
، ڪال ڪريو scrollspy ذريعي JavaScript:
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar-example'
})
حل ڪرڻ جي قابل ID ٽارگيٽ گهربل
نيوبار لنڪس کي حل ڪرڻ جي قابل id هدفن جو هجڻ لازمي آهي. مثال طور، هڪ <a href="#home">home</a>
لازمي طور تي DOM ۾ ڪنهن شيءِ سان ملندڙ جلندڙ آهي جهڙوڪ <div id="home"></div>
.
غير نظر انداز ٽارگيٽ عنصرن کي نظرانداز ڪيو ويو
ھدف وارا عنصر جيڪي نظر نه ايندا آھن انھن کي نظرانداز ڪيو ويندو ۽ انھن سان لاڳاپيل نيوي شيون ڪڏھن به نمايان نه ٿينديون.
طريقا
ريفريش ڪرڻ
جڏهن ڊوم مان عناصر کي شامل ڪرڻ يا ختم ڪرڻ سان گڏ scrollspy استعمال ڪندي، توهان کي ريفريش طريقي کي ڪال ڪرڻ جي ضرورت پوندي جيئن ته:
var dataSpyList = [].slice.call(document.querySelectorAll('[data-bs-spy="scroll"]'))
dataSpyList.forEach(function (dataSpyEl) {
bootstrap.ScrollSpy.getInstance(dataSpyEl)
.refresh()
})
نيڪال ڪرڻ
هڪ عنصر جي scrollspy کي تباهه ڪري ٿو. (ڊوم عنصر تي ذخيرو ٿيل ڊيٽا کي هٽائي ٿو)
getInstance
جامد طريقو جيڪو توهان کي حاصل ڪرڻ جي اجازت ڏئي ٿو scrollspy مثال DOM عنصر سان لاڳاپيل
var scrollSpyContentEl = document.getElementById('content')
var scrollSpy = bootstrap.ScrollSpy.getInstance(scrollSpyContentEl) // Returns a Bootstrap scrollspy instance
getOrCreateInstance
جامد طريقو جيڪو توهان کي حاصل ڪرڻ جي اجازت ڏئي ٿو scrollspy مثال هڪ 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...
})