JavaScript Bootstrap 可切換式標籤列表和滾動監聽

來源:互聯網
上載者:User

有一個導覽列列表,以及對應的內容部分,想要實現的效果是,除了能夠定位到指定的部分,還要加亮點擊的導航條目。

一 可切換式標籤頁 /可切換式標籤列表
這個方式是參考可切換式標籤頁,無需寫任何JavaScript代碼,只需簡單的為頁面元素指定data-toggle="tab" 或 data-toggle="pill"屬性即可啟用標籤頁或膠囊式標籤頁。為ul添加nav 和nav-tabs classe,即可為其添加Bootstrap的標籤頁樣式。

  1. <ul class="nav nav-tabs">
  2. <li><a href="#home" data-toggle="tab">首頁</a></li>
  3. <li><a href="#profile" data-toggle="tab">Profile</a></li>
  4. <li><a href="#messages" data-toggle="tab">Messages</a></li>
  5. <li><a href="#settings" data-toggle="tab">Settings</a></li>
  6. </ul>
也可以用js代碼來控制:
  1. <ul class="nav nav-tabs" id="myTab">
  2. <li class="active"><a href="#home">..</a></li>
  3. <li><a href="#profile">Profile</a></li>
  4. <li><a href="#messages">Messages</a></li>
  5. <li><a href="#settings">Settings</a></li>
  6. </ul>

  7. <div >
  8. <div id="home">...</div>
  9. <div id="profile">...</div>
  10. <div id="messages">...</div>
  11. <div id="settings">...</div>
  12. </div>

  13. <script>
  14. $(function () {
  15. $('#myTab a').click(function (e) {
  16. e.preventDefault();
  17. $(this).tab('show');
  18. })
  19. })
  20. </script>
但是同樣的效果不能作用在標籤列表中,因為列表對應的部分是都顯示的,只是捲軸位置不同。所以做了一些修改,加入了定位對應section的代碼。
  1. $('#navi_tabs a').click(function (e) {
  2. e.preventDefault();
  3. $(this).tab('show');
  4. var id = $(this).attr("href");
  5. $.scrollTo(id,100,{offset:-50});
  6. })

二 滾動監聽
相對於第一種方法的稍許曲折,滾動監聽實現起來就簡單多了。JS的實現如下:
  1. $('#nav_tabs').scrollspy()
但是實現中,可能是由於內容是在整個頁面範圍的,上述方法無效,只能通過更改body標籤屬性的方式:
  1. <body data-spy="scroll" data-target=".navbar">...</body>

  2. 或者

  3. $('body').attr('data-spy','scroll');
  4. $('body').attr('data-target',"#navi_div");

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.