一页网站 响应滚动Bootstrap导航栏

  • 源码大小:66.51KB
  • 所需积分:1积分
  • 源码编号:19JP-3658
  • 浏览次数:717次
  • 最后更新:2023年07月07日
  • 所属栏目:其他
我要下载
加入收藏
本站默认解压密码:19jp.com 或 19jp_com

简介

这是一个完全响应、新手友好、易于使用的滚动导航模板,专为单页滚动网站设计。

特征:

  • 与Bootstrap程序5和Bootstrap程序4兼容
  • 单击链接时自动折叠响应菜单
  • 平滑滚动
  • 内置Bootstrap滚动间谍功能

如何使用它:

1.在Bootstrap 5(或4)项目中加载必要的资源。

  1. <!-- Required -->
  2. <link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" />
  3. <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>
  4.  
  5. <!-- Required For Bootstrap 4 -->
  6. <script src="/path/to/cdn/jquery.min.js"></script>
  7. <script src="/path/to/cdn/anime.min.js"></script>

2.在页面上创建一个包含锚链接的Bootstrap导航栏。

  1. <!-- Bootstrap 5 -->
  2. <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav">
  3. <div class="container px-4">
  4. <a class="navbar-brand" href="#page-top">Start Bootstrap</a>
  5. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
  6. <div class="collapse navbar-collapse" id="navbarResponsive">
  7. <ul class="navbar-nav ms-auto">
  8. <li class="nav-item"><a class="nav-link" href="#about">About</a></li>
  9. <li class="nav-item"><a class="nav-link" href="#services">Services</a></li>
  10. <li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
  11. </ul>
  12. </div>
  13. </div>
  14. </nav>
  15.  
  16. <!-- Bootstrap 4 -->
  17. <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav">
  18. <div class="container">
  19. <a class="navbar-brand js-scroll-trigger" href="#page-top">Start Bootstrap</a>
  20. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
  21. <div class="collapse navbar-collapse" id="navbarResponsive">
  22. <ul class="navbar-nav ml-auto">
  23. <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#about">About</a></li>
  24. <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#services">Services</a></li>
  25. <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#contact">Contact</a></li>
  26. </ul>
  27. </div>
  28. </div>
  29. </nav>

3.用于激活滚动导航的主脚本。

  1. /*
  2. * Bootstrap 5
  3. */
  4. window.addEventListener('DOMContentLoaded', event => {
  5.  
  6. // Activate Bootstrap scrollspy on the main nav element
  7. const mainNav = document.body.querySelector('#mainNav');
  8. if (mainNav) {
  9. new bootstrap.ScrollSpy(document.body, {
  10. target: '#mainNav',
  11. offset: 74,
  12. });
  13. };
  14.  
  15. // Collapse responsive navbar when toggler is visible
  16. const navbarToggler = document.body.querySelector('.navbar-toggler');
  17. const responsiveNavItems = [].slice.call(
  18. document.querySelectorAll('#navbarResponsive .nav-link')
  19. );
  20. responsiveNavItems.map(function (responsiveNavItem) {
  21. responsiveNavItem.addEventListener('click', () => {
  22. if (window.getComputedStyle(navbarToggler).display !== 'none') {
  23. navbarToggler.click();
  24. }
  25. });
  26. });
  27.  
  28. });
  29.  
  30. /*
  31. * Bootstrap 4
  32. */
  33. (function ($) {
  34.  
  35. // Smooth scrolling using anime.js
  36. $('a.js-scroll-trigger[href*="#"]:not([href="#"])').on('click', function () {
  37. if (
  38. location.pathname.replace(/^\//, "") ==
  39. this.pathname.replace(/^\//, "") &&
  40. location.hostname == this.hostname
  41. ) {
  42. var target = $(this.hash);
  43. target = target.length ?
  44. target :
  45. $("[name=" + this.hash.slice(1) + "]");
  46. if (target.length) {
  47. anime({
  48. targets: 'html, body',
  49. scrollTop: target.offset().top - 56,
  50. duration: 1000,
  51. easing: 'easeInOutExpo'
  52. });
  53. return false;
  54. }
  55. }
  56. });
  57.  
  58. // Closes responsive menu when a scroll trigger link is clicked
  59. $(".js-scroll-trigger").on('click', function () {
  60. $(".navbar-collapse").collapse("hide");
  61. });
  62.  
  63. // Activate scrollspy to add active class to navbar items on scroll
  64. $("body").scrollspy({
  65. target: "#mainNav",
  66. offset: 56,
  67. });
  68.  
  69. })(jQuery);

更新日志:

v5.0.5版本(2022-03-24)

  • 使现代化

预览截图