html - BS4 轮播指示器在点击时突出显示错误的图像(事件)

标签 html jquery css bootstrap-4 carousel

我正在制作 BS4 轮播。 我正在使用 Jquery 获取要显示的图像。 图片被命名为 1.jpg - 72.jpg 一切正常,除了指示器缩略图在点击时突出显示了错误的图像。

如果图片 2 被点击,图片 3 被突出显示等等。

我不知道为什么会这样。

here is a fiddle

我使用此 Jquery 获取图像并将它们附加到 div。

$(document).ready(function(){
  for(var j = 1; j < 72; j++) {
$('<div class="carousel-item"><img src=" ./images/'+ j+'.jpg " width="100%">   
  </div>').appendTo('.carousel-inner');
$('<li data-target="#carousel" data-slide-to="'+j+'"><img  src=" ./images/'+ j+'.jpg " class="img- fluid"></li>').appendTo('.carousel-indicators')
console.log(j);
}
$('.carousel-item').first().addClass('active');
$('.carousel-indicators > li').first().addClass('active');
$('#carousel').carousel({
 pause: true,
 interval: true,
});
});

HTML 只是基本的。


<div id="carousel" class="carousel slide" data-interval="false">            
  <div class='carousel-outer'>
    <div class="carousel-inner"></div>      
      <a class="carousel-control-prev" href="#carousel" data-slide="prev"> <span class="carousel-control-prev-icon"></span>
      </a>
      <a class="carousel-control-next" href="#carousel" data-slide="next"> <span class="carousel-control-next-icon"></span>
      </a>
     </div>
<!-- Indicators -->
    <ol class="carousel-indicators"></ol>
</div>


CSS

#carousel {
      margin: 20px auto;
      max-height:658px;
      width: 1024px;
  }
  #carousel .carousel-indicators {
    flex-wrap: wrap;
       justify-content: center; 
       padding: 0 15px; 
       width: 100%; 
       position: static; 
       right: 0; 
       bottom: 0; 
       margin-right: 0; 
       margin-left: 0; 

  }
  #carousel .carousel-indicators li {
      background-color: transparent;
      -webkit-border-radius: 0;
      border-radius: 0;
      display: inline-block;
      height: auto;
      margin: 0 !important;
      width: auto;
  }
  #carousel .carousel-indicators li img {
      width: 50px;
      display: block;
      opacity: 0.9;
  }
  #carousel .carousel-indicators li.active img {
      opacity: 1;
  }
  #carousel .carousel-indicators li:hover img {
      opacity: 0.75;
  }
  #carousel .carousel-outer {
      position: relative;
  }

  .carousel-item-next, .carousel-item-prev, .carousel-item.active {
    display: block !important;
}

最佳答案

这很可能是因为循环从 1 而不是 0 开始。

一个可能的修复方法是将 data-slide-to 属性的值更改为 j - 1 而不是 j:

$(document).ready(function(){
  for(var j = 1; j < 72; j++) {
    $('<div class="carousel-item"><img src=" ./images/'+ j +'.jpg " width="100%"></div>').appendTo('.carousel-inner');
    $('<li data-target="#carousel" data-slide-to="'+ (j - 1) +'"><img  src=" ./images/'+ j +'.jpg " class="img- fluid"></li>').appendTo('.carousel-indicators')
console.log(j);
}
    $('.carousel-item').first().addClass('active');
    $('.carousel-indicators > li').first().addClass('active');
    $('#carousel').carousel({
        pause: true,
        interval: true,
    });
});

关于html - BS4 轮播指示器在点击时突出显示错误的图像(事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064225/

相关文章:

javascript - 如何计算我创建的对象数量?

html - Middle Div 不会位于其他 div 的中心

javascript - 是否可以在 HTML5 网页上接受手写笔输入

javascript - NodeJS/jQuery - 投票通知 API

css - Internet Explorer 中的 Bootstrap 下拉菜单

html - 如何更改预加载的视频 HTML5 Phaser?

javascript - 传递匿名函数时如何更改 setTimeout 中的 this/context?

html - li::before 中图像前不需要的空间

JavaScript SpellCheck 覆盖了我的 css 设计

javascript - 使用函数时出现传单内存泄漏的nodejs