带Bootstrap 5和jQuery 多项目旋转木马

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

简介

一个jQuery脚本,用于扩展Bootstrap 5旋转木马组件,该组件允许每个视图有多个项目。

这个旋转木马帮助开发人员用吸引人的过渡和效果来展示产品、新闻、项目、文章等多种元素。

我希望你喜欢这个旋转木马,并发现它很有用!请随意修改并使用它

如何使用它:

1.在文档中加载必要的jQuery库、Bootstrap 5框架和Font Awesome Iconic Font(可选)。

  1. <!-- jQuery -->
  2. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  3.  
  4. <!-- Bootstrap 5 -->
  5. <link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" />
  6. <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>
  7.  
  8. <!-- Font Awesome -->
  9. <link rel="stylesheet" href="/path/to/font-awesome/all.min.css" />

2.用于多项目转盘的HTML结构。

  1. <div class="container" id="featureContainer">
  2. <div class="row mx-auto my-auto justify-content-center">
  3. <div id="featureCarousel" class="carousel slide" data-bs-ride="carousel">
  4. <!-- Carousel Title OPTIONAL -->
  5. <h2 class="font-weight-light float-start">Carousel Title</h2>
  6. <!-- Prev & Next Buttons -->
  7. <div class="float-end pe-md-4">
  8. <a class="indicator" href="#featureCarousel" role="button" data-bs-slide="prev">
  9. <span class="fas fa-chevron-left" aria-hidden="true"></span>
  10. </a> &nbsp;&nbsp;
  11. <a class="w-aut indicator" href="#featureCarousel" role="button" data-bs-slide="next">
  12. <span class="fas fa-chevron-right" aria-hidden="true"></span>
  13. </a>
  14. </div>
  15. <!-- Carousel Items -->
  16. <div class="carousel-inner" role="listbox">
  17. <div class="carousel-item active">
  18. <div class="col-md-3">
  19. <div class="card">
  20. <div class="card-img">
  21. <img src="https://source.unsplash.com/JTkibpa_Xv4/450x650" class="img-fluid">
  22. </div>
  23. <div class="card-img-overlays">Slide 1</div>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="carousel-item">
  28. <div class="col-md-3">
  29. <div class="card">
  30. <div class="card-img">
  31. <img src="https://source.unsplash.com/m-eNBfYYrbA/450x650" class="img-fluid">
  32. </div>
  33. <div class="card-img-overlays">Slide 2</div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="carousel-item">
  38. <div class="col-md-3">
  39. <div class="card">
  40. <div class="card-img">
  41. <img src="https://source.unsplash.com/W2XfQIptWYs/450x650" class="img-fluid">
  42. </div>
  43. <div class="card-img-overlays">Slide 3</div>
  44. </div>
  45. </div>
  46. </div>
  47. ... more items here ...
  48. </div>
  49. </div>
  50. </div>
  51. </div>

3.转盘的附加CSS样式。

  1. .container {
  2. padding-right: 15px;
  3. padding-left: 15px;
  4. margin-right: auto;
  5. margin-left: auto;
  6. }
  7.  
  8. @media (min-width: 768px) {
  9. .container {
  10. width: 750px;
  11. }
  12. }
  13.  
  14. @media (min-width: 992px) {
  15. .container {
  16. width: 970px;
  17. }
  18. }
  19.  
  20. @media (min-width: 1200px) {
  21. .container {
  22. width: 1170px;
  23. }
  24. }
  25.  
  26. @media (max-width: 767px) {
  27. #featureContainer .carousel-inner .carousel-item > div {
  28. display: none;
  29. }
  30. #featureContainer .carousel-inner .carousel-item > div:first-child {
  31. display: block;
  32. }
  33. }
  34.  
  35. #featureContainer .carousel-inner .carousel-item.active,
  36. #featureContainer .carousel-inner .carousel-item-next,
  37. #featureContainer .carousel-inner .carousel-item-prev {
  38. display: flex;
  39. }
  40.  
  41. /* medium and up screens */
  42. @media (min-width: 768px) {
  43. #featureContainer .carousel-inner .carousel-item-end.active,
  44. #featureContainer .carousel-inner .carousel-item-next {
  45. transform: translateX(25%);
  46. }
  47. #featureContainer .carousel-inner .carousel-item-start.active,
  48. #featureContainer .carousel-inner .carousel-item-prev {
  49. transform: translateX(-25%);
  50. }
  51.  
  52. #featureContainer .card img{
  53. width: 90%;
  54. height: 40vh;
  55. }
  56.  
  57. #featureContainer .carousel-item{
  58. justify-content: space-between;
  59. }
  60.  
  61. }
  62.  
  63. @media (max-width: 767px) {
  64. #featureContainer .card img{
  65. width: 100%;
  66. height: 75vh;
  67. }
  68. }
  69.  
  70. #featureContainer .carousel-inner .carousel-item-end,
  71. #featureContainer .carousel-inner .carousel-item-start {
  72. transform: translateX(0);
  73. }
  74.  
  75. #featureContainer .card{
  76. border: 0;
  77. }
  78.  
  79. #featureContainer .card{
  80. position: relative;
  81. }
  82.  
  83. #featureContainer .card .card-img-overlays{
  84. position: absolute;
  85. bottom: 15%;
  86. left: 10%;
  87. color: #fff;
  88. font-weight: bolder;
  89. }
  90.  
  91. #featureContainer a{
  92. text-decoration: none;
  93. }
  94.  
  95. #featureContainer .indicator{
  96. border: 1px solid rgb(202, 202, 202);
  97. padding: 3px 6px 3px 6px;
  98. }
  99.  
  100. #featureContainer .indicator:hover{
  101. background-color: blue;
  102. border: 1px solid blue;
  103. transition: 200ms;
  104. }
  105.  
  106. #featureContainer .indicator:hover{
  107. color: white;
  108. transition: 200ms;
  109. }
  110.  
  111. #featureContainer .indicator {
  112. color: lightgray;
  113. }
  114.  
  115. #featureContainer .float-end{
  116. padding-top: 10px;
  117. }

4.启用多项目转盘。

  1. let items = document.querySelectorAll('#featureContainer .carousel .carousel-item');
  2. items.forEach((el) => {
  3. const minPerSlide = 4
  4. let next = el.nextElementSibling
  5. for (var i=1; i<minPerSlide; i++) {
  6. if (!next) {
  7. // wrap carousel by using first child
  8. next = items[0]
  9. }
  10. let cloneChild = next.cloneNode(true)
  11. el.appendChild(cloneChild.children[0])
  12. next = next.nextElementSibling
  13. }
  14. })
  15. $(document).ready(function(){
  16. $('#featureCarousel').carousel({interval: false});
  17. $('#featureCarousel').carousel('pause');
  18. });

预览截图