Önyükleme JS Scrollspy
JS Scrollspy (scrollspy.js)
Scrollspy eklentisi, kaydırma konumuna göre bir gezinme listesindeki bağlantıları otomatik olarak güncellemek için kullanılır.
Scrollspy hakkında bir eğitim için Bootstrap Scrollspy Eğitimimizi okuyun .
İpucu: Scrollspy eklentisi genellikle Affix eklentisi ile birlikte kullanılır .
Veri-* Öznitelikler aracılığıyla
data-spy="scroll"
Kaydırılabilir alan olarak kullanılması gereken öğeye ekleyin (genellikle bu <body>
öğedir).
Ardından , gezinme çubuğunun ( ) data-target
kimliğinin veya sınıf adının bir değeriyle özniteliği ekleyin. .navbar
Bu, gezinme çubuğunun kaydırılabilir alana bağlı olduğundan emin olmak içindir.
Kaydırılabilir öğelerin, gezinme çubuğunun liste öğeleri içindeki bağlantıların kimliğiyle eşleşmesi gerektiğini unutmayın ( <div id="section1">
eşleşir <a href="#section1">
).
İsteğe bağlı data-offset
öznitelik, kaydırma konumu hesaplanırken üstten kaydırılacak piksel sayısını belirtir. Bu, gezinme çubuğu içindeki bağlantıların, kaydırılabilir öğelere atlarken etkin durumu çok erken veya çok erken değiştirdiğini hissettiğinizde kullanışlıdır. Varsayılan 10 pikseldir.
Göreceli konumlandırma gerektirir: data-spy="scroll" içeren öğenin düzgün çalışması için "göreli" değerine sahip CSS konum özelliği gerekir.
Örnek
<!-- The scrollable area -->
<body data-spy="scroll"
data-target=".navbar" data-offset="50">
<!-- The navbar - The
<a> elements are used to jump to a section in the scrollable area -->
<nav
class="navbar navbar-inverse navbar-fixed-top">
...
<ul class="nav
navbar-nav">
<li><a href="#section1">Section 1</a></li>
...
</nav>
<!-- Section 1
-->
<div id="section1">
<h1>Section 1</h1>
<p>Try to scroll this page and look at
the navigation bar while scrolling!</p>
</div>
...
</body>
JavaScript aracılığıyla
Şunlarla manuel olarak etkinleştirin:
Örnek
$('body').scrollspy({target: ".navbar"})
Scrollspy Seçenekleri
Seçenekler, veri öznitelikleri veya JavaScript aracılığıyla iletilebilir. Veri öznitelikleri için, data-offset="" gibi seçenek adını data-'ya ekleyin.
Name | Type | Default | Description | Try it |
---|---|---|---|---|
offset | number | 10 | Specifies the number of pixels to offset from top when calculating the position of scroll |
Scrollspy Yöntemleri
Aşağıdaki tablo, mevcut tüm scrollspy yöntemlerini listeler.
Method | Description | Try it |
---|---|---|
.scrollspy("refresh") | When adding and removing elements from the scrollspy, this method can be used to refresh the document |
Scrollspy Etkinlikleri
Aşağıdaki tablo, mevcut tüm scrollspy olaylarını listeler.
Event | Description | Try it |
---|---|---|
activate.bs.scrollspy | Occurs when a new item becomes activated by the scrollspy |
Daha fazla örnek
Animasyonlu kaydırma ile Scrollspy
Aynı sayfadaki bir bağlantıya düzgün bir sayfa kaydırma nasıl eklenir:
Pürüzsüz kaydırma
// Add scrollspy to <body>
$('body').scrollspy({target: ".navbar", offset: 50});
// Add smooth scrolling on all links inside the navbar
$("#myNavbar a").on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
Scrollspy ve Yapıştır
Affix eklentisini Scrollspy eklentisi ile birlikte kullanma :
Yatay Menü (Gezinme Çubuğu)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Dikey Menü (Sidenav)
<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">
<nav class="col-sm-3" id="myScrollspy">
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
...
</nav>
</body>