引导轮播转换和上一个/下一个按钮不起作用

Posted

技术标签:

【中文标题】引导轮播转换和上一个/下一个按钮不起作用【英文标题】:Bootstrap Carousel Transitions and Prev/Next Buttons Not Working 【发布时间】:2012-09-14 23:07:53 【问题描述】:

我正在尝试实现 twitter 引导轮播,但它不起作用 - 它不会自动切换图像,并且上一个/下一个按钮不起作用。

我尝试按照Bootstrap Carousel Not Automatically Sliding 和Bootstrap Carousel Not working 的建议切换到jquery 1.7.1,但似乎没有任何帮助。

任何想法都将不胜感激。

<!DOCTYPE html>
<html>
    <head>
        <title>Slideshow Test</title>
        <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
        <script src="js/bootstrap.js"></script>
        <script src="js/jquery-1.7.1.min.js"></script>
        <script src="js/bootstrap-transition.js"></script>
    </head>
    <body>
        <div id="myCarousel" class="carousel slide" style="width:450px">
            <!-- Carousel items -->
            <div class="carousel-inner">
                <div class="item active"><img src="img/IMG_2.jpg"></div>                
                <div class="item"><img src="img/IMG_3.jpg"></div>
                <div class="item"><img src="img/IMG_1.jpg"></div>
                <!-- Carousel nav -->
                <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
                <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>
            </div>
        </div>    
    </body>
</html>

您可以在www.abbymilberg.com/bootstrap查看它及其链接文件。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,即使在正确的顺序中包含 .js,我在“onclick”事件上修复了它,如下所示:

<a class="left carousel-control" href="#myCarousel" data-slide="prev" onclick="$('#myCarousel').carousel('prev')">‹</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next" onclick="$('#myCarousel').carousel('next')">›</a>

我知道这不是最干净的解决方案,但它确实有效。

【讨论】:

如果您遇到此问题,请确保 prev/next 按钮中的 href 引用正确的 ID。它应该是#id(jquery 表示法)。应该不需要添加onclick。 这里有同样的问题。我要进行onclick 脏修复,但如果您碰巧知道它为什么不起作用,我会很高兴听到它。 你也可以像这样添加 return false onclick="$('#carouselInner').carousel('next'); return false;" bs4 上也一样【参考方案2】:

你应该在包含 jquery.js 之后包含 bootstrap.js:

<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap.js"></script>

【讨论】:

另外,bootstrap-transition.js 应该在所有其他 Bootstrap 插件之前(但仍然在 jQuery 之后,正如 Daniil 正确识别的那样)。 谢谢!这解决了它 - 你是最好的!【参考方案3】:

我遇到了同样的问题,我通过在 css 中添加 z-index 来解决它:

.carousel-control.left, .carousel-control.right 
  left: 0;
  z-index: 1;

【讨论】:

这对我很有帮助,因为我使用 hack 来更改 .carousel-caption 的 z-index,所以我还必须更改控件的 z-index,以便它们出现在标题的顶部.【参考方案4】:
<div class="left carousel-control" data-target="#myCarousel" data-slide="prev"/>
          <span class="glyphicon glyphicon-chevron-left"></span>
          <span class="sr-only">Previous</span>
</div>
<div class="right carousel-control" data-target="#myCarousel" data-slide="next"/>
          <span class="glyphicon glyphicon-chevron-right"></span>
          <span class="sr-only">Next</span>
</div>

【讨论】:

对你的按钮做一个类并在我的代码上检查数据目标谢谢:)【参考方案5】:

尝试在控件启动之前关闭“carousel-inner”

<div id="myCarousel" class="carousel slide" style="width:450px">
    <div class="carousel-inner">
        <div class="item active"><img src="img/IMG_2.jpg"></div>                
        <div class="item"><img src="img/IMG_3.jpg"></div>
        <div class="item"><img src="img/IMG_1.jpg"></div>
    </div>
    <!-- Carousel nav -->
    <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
    <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>

</div>

【讨论】:

这是因为 OP 在引导后包含 jquery。这无济于事 这对这些家伙有用twitter.github.com/bootstrap/javascript.html#carousel 这是因为 bootstrap 在 jQuery 可用之前尝试使用 jQuery。 谢谢,我明白了。只是真的以为是那个 div。 将 jquery 放在 bootstrap 之前解决了我原来的问题,但在我这样做之后,在浏览完所有幻灯片后它仍然没有正确循环。按照这个建议解决了这个问题,非常感谢!【参考方案6】:

我有同样的症状,但我的问题是我没有在我的轮播中包含一个 id。正如 cmets 中的其他用户所建议的那样,在具有 .carousel 类的同一 div 上添加一个 id,并在按钮/链接上使用 href="#my-carousel" 为我解决了这个问题。

<div id="my-carousel" class="carousel slide" style="width:450px">
            ^----------------------------------v
    <a class="carousel-control left" href="#my-carousel" data-slide="prev">&lsaquo;</a>
    <a class="carousel-control right" href="#my-carousel" data-slide="next">&rsaquo;</a>
</div>

【讨论】:

【参考方案7】:

进一步回答user2139170,这是构建轮播的正确方法(BootStrap 3.3.5):

jsFiddle Example

<div id="myCarousel" class="carousel slide text-center" data-ride="carousel">
    <ol class="carousel-indicators">
        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
        <li data-target="#myCarousel" data-slide-to="1"></li>
    </ol>
    <div class="carousel-inner" role="listbox">
        <div class="item active">
            <h4>A mind-bending lecture on applied philosophy by Oxford lecturer Ravi Zacharias.</h4>
            <br>
            <span class="font-normal">youtube/watch?v=3ZZaoavCsYE</span>
        </div>
        <div class="item">
            <h4>Director of the Human Genome Project discusses the greatest mystery of life</h4>
            <br>
            <span class="font-normal">youtube/watch?v=EGu_VtbpWhE</span>
        </div>
    </div>

    <a href="" class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a href="" class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div><!-- #myCarousel -->

<script>
    $(function()

        $('.carousel-control').click(function(e)
            e.preventDefault();
            $('#myCarousel').carousel( $(this).data() );
        );

    );//END document.ready
</script>

注意:此答案需要 jQuery,因此请确保已加载库。当然,bootstrap 需要 jQuery,所以你应该已经引用了它。

【讨论】:

【参考方案8】:

使用下面的代码会帮助你

按钮功能良好

运行代码 sn-p 来检查它是否解决了你的问题

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Carousel Example</h2>  
  <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <!-- Indicators -->
    <ol class="carousel-indicators">
      <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
      <li data-target="#myCarousel" data-slide-to="1"></li>
      <li data-target="#myCarousel" data-slide-to="2"></li>
    </ol>

    <!-- Wrapper for slides -->
    <div class="carousel-inner">
      <div class="item active">
        <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(2).jpg"  style="width:100%;">
      </div>

      <div class="item">
        <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(4).jpg"  style="width:100%;">
      </div>
    
      <div class="item">
        <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(6).jpg"  style="width:100%;">
      </div>
    </div>

    <!-- Left and right controls -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
      <span class="sr-only">Next</span>
    </a>
  </div>
</div>

</body>
</html>

【讨论】:

【参考方案9】:

我的上一个/下一个按钮不起作用。这是因为旧版本的引导 js 脚本。

我使用了 bootstrap 网站中提到的最新推荐版本的 javascripts(jquery 和 bootstrap),并且效果很好

【讨论】:

【参考方案10】:

检查您是否在 head 标记中粘贴了正确的引导链接。它对我有用。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 尝试更改为不同版本的引导程序。引导版本 5.1x 给我带来了一些问题,所以我将其更改为 4.6,它工作得很好。 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于引导轮播转换和上一个/下一个按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

引导轮播指示器不起作用

Blazor Webassembly 中的 JavaScript 免费引导轮播

使用 data-interval="false" 防止 twitter 引导轮播自动滑动不起作用

带有 Javascript 功能的引导轮播播放和暂停

负边距如何在引导轮播中起作用?

bootstrap 5 轮播控件不起作用并且指示器不显示