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

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

我尝试按照Bootstrap Carousel Not Automatically SlidingBootstrap 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查看它及其链接文件。

【问题讨论】:

    标签: javascript jquery twitter-bootstrap slideshow carousel


    【解决方案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。这无济于事
    • 这是因为 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" alt="Los Angeles" style="width:100%;">
              </div>
        
              <div class="item">
                <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(4).jpg" alt="Chicago" style="width:100%;">
              </div>
            
              <div class="item">
                <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(6).jpg" alt="New york" 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 标记中粘贴了正确的引导链接。它对我有用。

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-16
            • 2020-04-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-12-06
            相关资源
            最近更新 更多