将Bootstrap升级到版本4之后,如何使轮播再次工作



我正在研究将站点从Bootstrap版本3.x升级到版本4.3.1。我覆盖了旧的Bootstrap文件,还将jQuery脚本引用从1.x更改为3.3.1。

我的问题是:在升级之前正在工作的jQuery现在不起作用。具体来说,我们有一个现在不运行的轮播。

控制台没有任何问题。没有关于JavaScript的错误或警告。

这是轮播的HTML:

<div id="carousel" class="carousel slide" data-ride="carousel">
              <!-- Indicators -->
              <ol class="carousel-indicators">
                <li data-target="#carousel" data-slide-to="0" class="active"></li>
                <li data-target="#carousel" data-slide-to="1"></li>
                <li data-target="#carousel" data-slide-to="2"></li>
              </ol>
              <!-- Wrapper for slides -->
              <div class="carousel-inner" role="listbox">
                <div class="item active">
                  <img src="/i/slider1.jpg" alt="Jobs for veterans testimonial">
                  <div class="carousel-caption slide1">I had put my resume on 7 other major job boards and the BEST results came from<br><em>Michael</em>
                    </div>
                </div>
                <div class="item">
                  <img src="/i/slider2.jpg" alt="Job offer former military testimonial">
                  <div class="carousel-caption slide2">I posted my resume on . I received a job offer in 2 days.<br> <em>C. Dean</em></div>
                </div>
                   <div class="item">
                  <img src="/i/slider3.jpg" alt="better job testimonial">
                  <div class="carousel-caption slide3">Thanks to I found a better job within a matter of weeks.... I highly recommend  &ndash; it truly works.<br><em>J. Spivey</em></div>
                </div>
              </div>
        </div>

和jQuery:

$(document).ready(function() {
$('.carousel').carousel({
  interval: 8000,
    pause: "hover"
})
});

我如何使轮播再次工作?

主要问题是item类必须由carousel-inner包装器中的carousel-item替换。另外,如果您在这里阅读文档,例如:

,您可能需要考虑其他几件事。

1)向图像添加d-blockw-100类。

2)定义widthheight图像的属性。

工作示例:

$(document).ready(function()
{
    $('.carousel').carousel({
        interval: 8000,
        pause: "hover"
    });
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<div id="carousel" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel" data-slide-to="0" class="active"></li>
    <li data-target="#carousel" data-slide-to="1"></li>
    <li data-target="#carousel" data-slide-to="2"></li>
  </ol>
  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <div class="carousel-item active">
      <img src="https://via.placeholder.com/600x300" alt="Jobs for veterans testimonial" width="600px" height="300px" class="d-block w-100">
      <div class="carousel-caption slide1">
        I had put my resume on 7 other major job boards and the BEST results came from<br><em>Michael</em>
      </div>
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/600x300" width="600px" height="300px" alt="Job offer former military testimonial" class="d-block w-100">
      <div class="carousel-caption slide2">
        I posted my resume on . I received a job offer in 2 days.<br> <em>C. Dean</em>
      </div>
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/600x300" alt="better job testimonial" width="600px" height="300px" class="d-block w-100">
      <div class="carousel-caption slide3">
        Thanks to I found a better job within a matter of weeks.... I highly recommend  &ndash; it truly works.<br><em>J. Spivey</em>
      </div>
    </div>
  </div>
</div>

示例2:

使用carousel-item上的text-center类在旋转木马上的集中图像,图像上的img-fluid以响应。

$(document).ready(function()
{
    $('.carousel').carousel({
        interval: 8000,
        pause: "hover"
    });
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<div id="carousel" class="carousel slide bg-warning" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel" data-slide-to="0" class="active"></li>
    <li data-target="#carousel" data-slide-to="1"></li>
    <li data-target="#carousel" data-slide-to="2"></li>
  </ol>
  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <div class="carousel-item active text-center">
      <img src="https://via.placeholder.com/600x300" alt="Jobs for veterans testimonial" width="600px" height="300px" class="img-fluid">
      <div class="carousel-caption slide1">
        I had put my resume on 7 other major job boards and the BEST results came from<br><em>Michael</em>
      </div>
    </div>
    <div class="carousel-item text-center">
      <img src="https://via.placeholder.com/600x300" width="600px" height="300px" alt="Job offer former military testimonial" class="img-fluid">
      <div class="carousel-caption slide2">
        I posted my resume on . I received a job offer in 2 days.<br> <em>C. Dean</em>
      </div>
    </div>
    <div class="carousel-item text-center">
      <img src="https://via.placeholder.com/600x300" alt="better job testimonial" width="600px" height="300px" class="img-fluid">
      <div class="carousel-caption slide3">
        Thanks to I found a better job within a matter of weeks.... I highly recommend  &ndash; it truly works.<br><em>J. Spivey</em>
      </div>
    </div>
  </div>
</div>

最新更新