選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Bootstrap JS Scrollspy


JS Scrollspy (scrollspy.js)

Scrollspy 外掛用於根據滾動位置自動更新導航列表中的連結。

有關 Scrollspy 的教程,請閱讀我們的 Bootstrap Scrollspy 教程

提示:Scrollspy 外掛經常與 Affix 外掛一起使用。


透過 data-* 屬性

嚮應作為可滾動區域的元素新增 data-spy="scroll"(通常是 <body> 元素)。

然後新增 data-target 屬性,其值為導航欄的 id 或類名(.navbar)。這樣可以確保導航欄與可滾動區域相連。

請注意,可滾動元素必須匹配導航欄列表項中連結的 ID(<div id="section1"> 匹配 <a href="#section1">)。

可選的 data-offset 屬性指定了在計算滾動位置時從頂部偏移的畫素數。當您覺得導航欄中的連結在跳轉到可滾動元素時過早或過晚更改啟用狀態時,這很有用。預設為 10 畫素。

需要相對定位:具有 data-spy="scroll" 的元素需要 CSS position 屬性,其值為“relative”才能正常工作。

示例

<!-- 可滾動區域 -->
<body data-spy="scroll" data-target=".navbar" data-offset="50">

<!-- 導航欄 - <a> 元素用於跳轉到可滾動區域中的某個部分 -->
<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>嘗試滾動此頁面,在滾動時檢視導航欄!</p>
</div>
...

</body>
自己動手試一試 »


透過 JavaScript

使用以下命令手動啟用:

示例

$('body').scrollspy({target: ".navbar"})
自己動手試一試 »

Scrollspy 選項

選項可以透過資料屬性或 JavaScript 傳遞。對於資料屬性,將選項名稱附加到 data-,例如 data-offset=""。

名稱 型別 預設值 描述 試一試
offset 數字 10 指定在計算滾動位置時從頂部偏移的畫素數 試一試

Scrollspy 方法

下表列出了所有可用的 scrollspy 方法。

方法 描述 試一試
.scrollspy("refresh") 在新增和刪除 scrollspy 的元素時,此方法可用於重新整理文件 試一試

Scrollspy 事件

下表列出了所有可用的 scrollspy 事件。

事件 描述 試一試
activate.bs.scrollspy 當 scrollspy 啟用新專案時發生 試一試

更多示例

帶動畫滾動的 Scrollspy

如何為同一頁面上的錨點新增平滑頁面滾動

平滑滾動

// 將 scrollspy 新增到 <body>
$('body').scrollspy({target: ".navbar", offset: 50});

// 為導航欄中的所有連結新增平滑滾動
$("#myNavbar a").on('click', function(event) {

  // 確保在覆蓋預設行為之前 this.hash 有值
  if (this.hash !== "") {

    // 阻止預設的錨點點選行為
    event.preventDefault();

    // 儲存雜湊值
    var hash = this.hash;

    // 使用 jQuery 的 animate() 方法新增平滑頁面滾動
    // 可選數字 (800) 指定滾動到指定區域所需的毫秒數
    $('html, body').animate({
      scrollTop: $(hash).offset().top
    }, 800, function(){

    // 滾動完成後將雜湊值(#)新增到 URL(預設點選行為)
      window.location.hash = hash;
    });

  } // 結束 if

});
自己動手試一試 »

滾動監聽和固釘

Affix 外掛與 Scrollspy 外掛一起使用

水平選單(導航欄)

<body data-spy="scroll" data-target=".navbar" data-offset="50">

<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>

</body>
自己動手試一試 »

垂直選單(側邊導航)

<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>
自己動手試一試 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援