响应式垂直Bootstrap5个标签/药丸, jQuery和CSS

  • 源码大小:6.51KB
  • 所需积分:1积分
  • 源码编号:19JP-3430
  • 浏览次数:574次
  • 最后更新:2023年06月12日
  • 所属栏目:其他
本站默认解压密码:19jp.com 或 19jp_com

简介

这是一个响应迅速、移动友好的垂直选项卡/药丸组件,使用jQuery、CSS/CS3和Bootstrap 5框架构建。

它可以将垂直药丸折叠成小屏幕上的汉堡按钮,在那里你可以在下拉菜单中的选项卡内容之间切换。

参见:

  • 创建垂直Bootstrap选项卡组件

如何使用它:

1.加载所需的jQuery库和Bootstrap 5框架。

  1. <link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" />
  2. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  3. <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>

2.用于垂直选项卡/药丸的HTML结构。

  1. <div class="d-flex align-items-start responsive-tab-menu">
  2. <!-- Tabs/Pills -->
  3. <ul class="nav flex-column nav-pills nav-tabs-dropdown me-3" id="v-pills-tab" role="tablist"
  4. aria-orientation="vertical">
  5. <li class="nav-item">
  6. <a class="nav-link text-start active" href="#" id="v-pills-home-tab" data-bs-toggle="pill" data-bs-target="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">
  7. Home
  8. </a>
  9. </li>
  10. <li class="nav-item">
  11. <a class="nav-link text-start" href="#" id="v-pills-profile-tab" data-bs-toggle="pill" data-bs-target="#v-pills-profile" role="tab" aria-controls="v-pills-profile" aria-selected="false">
  12. Profile
  13. </a>
  14. </li>
  15. <li class="nav-item">
  16. <a class="nav-link text-start" href="#" id="v-pills-contact-tab" data-bs-toggle="pill" data-bs-target="#v-pills-contact" role="tab" aria-controls="v-pills-profile" aria-selected="false">
  17. Contact
  18. </a>
  19. </li>
  20. </ul>
  21. <!-- Tabbed Content -->
  22. <div class="tab-content responsive-tab-content" id="v-pills-tabContent">
  23. <div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab" tabindex="0">
  24. Home content
  25. </div>
  26. <div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab" tabindex="0">
  27. Profile content
  28. </div>
  29. <div class="tab-pane fade" id="v-pills-contact" role="tabpanel" aria-labelledby="v-pills-profile-tab" tabindex="0">
  30. Contact content
  31. </div>
  32. </div>
  33. </div>

3.响应选项卡/药丸所需的CSS样式。

  1. .responsive-tab-menu .nav-pills .nav-link.active,
  2. .responsive-tab-menu .nav-pills .show>.nav-link {
  3. color: unset;
  4. }
  5.  
  6. @media (max-width: 767px) {
  7.  
  8. .responsive-tab-content,
  9. .responsive-tab-menu {
  10. display: block !important;
  11. }
  12.  
  13. .nav-pills.nav-tabs-dropdown,
  14. .nav-tabs-dropdown {
  15. border: 1px solid #dddddd;
  16. border-radius: 5px;
  17. overflow: hidden;
  18. position: relative;
  19. }
  20.  
  21. .nav-pills.nav-tabs-dropdown::after,
  22. .nav-tabs-dropdown::after {
  23. content: "☰";
  24. position: absolute;
  25. top: 8px;
  26. right: 15px;
  27. z-index: 2;
  28. pointer-events: none;
  29. }
  30.  
  31. .nav-pills.nav-tabs-dropdown.open a,
  32. .nav-tabs-dropdown.open a {
  33. position: relative;
  34. display: block;
  35. }
  36.  
  37. .nav-pills.nav-tabs-dropdown li,
  38. .nav-tabs-dropdown li {
  39. display: block;
  40. padding: 0;
  41. vertical-align: bottom;
  42. }
  43.  
  44. .nav-pills.nav-tabs-dropdown > li > a,
  45. .nav-tabs-dropdown > li > a {
  46. position: absolute;
  47. top: 0;
  48. left: 0;
  49. margin: 0;
  50. width: 100%;
  51. height: 100%;
  52. display: inline-block;
  53. border-color: transparent;
  54. }
  55.  
  56. .nav-pills.nav-tabs-dropdown > li > a:focus,
  57. .nav-tabs-dropdown > li > a:focus,
  58. .nav-pills.nav-tabs-dropdown > li > a:hover,
  59. .nav-tabs-dropdown > li > a:hover,
  60. .nav-pills.nav-tabs-dropdown > li > a:active,
  61. .nav-tabs-dropdown > li > a:active {
  62. border-color: transparent;
  63. }
  64.  
  65. .nav-pills.nav-tabs-dropdown > li >a.active,
  66. .nav-tabs-dropdown > li > a.active {
  67. display: block;
  68. border-color: transparent;
  69. position: relative;
  70. z-index: 1;
  71. background: #222;
  72. }
  73.  
  74. .nav-pills.nav-tabs-dropdown > li.active > a:focus,
  75. .nav-tabs-dropdown > li.active > a:focus,
  76. .nav-pills.nav-tabs-dropdown > li.active > a:hover,
  77. .nav-tabs-dropdown > li.active > a:hover,
  78. .nav-pills.nav-tabs-dropdown > li.active > a:active,
  79. .nav-tabs-dropdown > li.active > a:active {
  80. border-color: transparent;
  81. }
  82. }

4.启用响应选项卡下拉菜单。

  1. $('.nav-tabs-dropdown')
  2. .on("click", ".nav-link:not('.active')", function (event) {
  3. $(this).closest('ul').removeClass("open");
  4. })
  5. .on("click", ".nav-link.active", function (event) {
  6. $(this).closest('ul').toggleClass("open");
  7. });

预览截图