【问题标题】:Bootstrap 3 Carousel Not WorkingBootstrap 3轮播不工作
【发布时间】:2014-01-05 13:11:55
【问题描述】:

Bootstrap 中的轮播不会显示我的图像或对控件做出反应。

这是我的 HTML:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Skates R Us</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link rel="stylesheet" href="css/global.css">
    </head>

    <body>
        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a href="#" class="navbar-brand">
                        Skates R Us
                    </a>
                </div>
                <div class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li class="active">
                            <a href="index.html">Home</a>
                        </li>
                        <li>
                            <a href="contact.html">Contact / About</a>
                        </li>
                        <li>
                            <a href="shop.html">Shop</a>
                        </li>
                        <li>
                            <a href="new.html">New Products</a>
                        </li>
                        <li>
                            <a href="media.html">Media</a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>

        <div id="carousel" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="carousel" data-slide-to="0"></li>
                <li data-target="carousel" data-slide-to="1"></li>
                <li data-target="carousel" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="item">
                    <img src="img/slide_1.png" alt="Slide 1">
                </div>
                <div class="item">
                    <img src="img/slide_2.png" alt="Slide 2">
                </div>
                <div class="item">
                    <img src="img/slide_3.png" alt="Slide 3">
                </div>
            </div>
            <a href="#carousel" class="left carousel-control" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a href="#carousel" class="right carousel-control" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div>

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script>
            $("#carousel").carousel();
        </script>
    </body>
</html>

我的 CSS:

#carousel {

    margin-top: 50px;

}

.carousel {
    height: 500px;
    margin-bottom: 60px;
}
/* Since positioning the image, we need to help out the caption */
.carousel-caption {
    z-index: 10;
}

/* Declare heights because of positioning of img element */
.carousel .item {
    width: 100%;
    height: 500px;
    background-color: #777;
}
.carousel-inner > .item > img {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100%;
    height: 500px;
}

@media (min-width: 768px) {
    .carousel-caption p {
            margin-bottom: 20px;
            font-size: 21px;
            line-height: 1.4;
    }
}

img {
    background: red;
}

Chrome 控制台中没有错误,代码与 Bootstrap 示例中的代码几乎完全相同。

这就是我的网站的样子:

【问题讨论】:

标签: html css twitter-bootstrap twitter-bootstrap-3 carousel


【解决方案1】:

这里只有两件小事。

第一个是在以下轮播指示器列表项中:

<li data-target="carousel" data-slide-to="0"></li>

您需要将data-target 属性传递给选择器,这意味着ID 必须以# 为前缀。所以将它们更改为以下内容:

<li data-target="#carousel" data-slide-to="0"></li>

其次,您需要给轮播一个起点,这样轮播指示器项和轮播内部项都必须有一个active 类。像这样:

<ol class="carousel-indicators">
    <li data-target="#carousel" data-slide-to="0" class="active"></li>
    <!-- Other Items -->
</ol>
<div class="carousel-inner">
    <div class="item active">
        <img src="https://picsum.photos/1500/600?image=1" alt="Slide 1" />
    </div>
    <!-- Other Items -->
</div>

Working Demo in Fiddle

【讨论】:

  • @user2133268,当你提出问题时,你真的应该尽可能多地努力使它成为一个的问题。这里有 ton 的代码与您的示例无关。您通常应该尝试将您的代码放入 jsfiddle.net 或 bootply.com,以便其他人可以立即对其进行调试。您应该从文档中的一个工作示例开始,并逐行比较以查看其不同之处。这些都是可以掌舵回答你自己的问题的所有方式。他们授权你。这是一种很好的礼仪,但它也能让你在编程方面做得更好。
  • SO 如果您必须发布 jsfiddle 链接,则特别强制在帖子中发布代码! @KyleMit
【解决方案2】:

这里是你需要做的改变

只需将轮播 div 替换为以下代码

您错过了数据目标的“#”并为第一项添加活动类

<div id="carousel" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="#carousel" data-slide-to="0"></li>
                <li data-target="#carousel" data-slide-to="1"></li>
                <li data-target="#carousel" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="item active">
                    <img src="img/slide_1.png" alt="Slide 1">
                </div>
                <div class="item">
                    <img src="img/slide_2.png" alt="Slide 2">
                </div>
                <div class="item">
                    <img src="img/slide_3.png" alt="Slide 3">
                </div>
            </div>
            <a href="#carousel" class="left carousel-control" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a href="#carousel" class="right carousel-control" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div>

【讨论】:

    【解决方案3】:

    好吧,Bootstrap Carousel 有各种参数可以控制。

    间隔:指定每张幻灯片之间的延迟(以毫秒为单位)。

    暂停:当鼠标指针进入轮播时暂停轮播通过下一张幻灯片,当鼠标指针离开轮播时继续滑动。

    wrap: 指定轮播是连续遍历所有幻灯片,还是在最后一张幻灯片停止

    供您参考:

    更多详情请click here...

    希望对你有帮助:)

    注意:这是为了进一步的帮助。我的意思是,一旦轮播加载完毕,您如何自定义或更改默认行为。

    【讨论】:

    • 这是为了进一步的帮助。我的意思是一旦加载轮播,你如何自定义或更改默认行为。
    【解决方案4】:

    最近我正在帮助一位朋友找出他们的轮播不工作的原因。控件不起作用,图像没有过渡。我在我使用过的页面上有一个工作示例,我们检查了所有代码,包括检查这篇文章中的上述项目。我们将“好”轮播粘贴到同一页面中,它仍然有效。现在,所有的 css 和 bootstrap 文件都是一样的。代码现在是相同的,所以我们只能尝试图像。

    因此,我们用我的示例中的两个图像替换了这些图像。有效。我们用最初不起作用的前两个图像替换了这两个图像,并且它起作用了。我们将每个图像(所有 jpeg)一张一张地添加回来,当我们到达第七张图像(共 18 张)时,轮播失败了。诡异的。我们删除了这一个图像并继续添加剩余的图像,直到它们都被添加并且轮播工作。

    作为参考,我们在此站点上使用了 jquery-3.3.1.slim.min.js 和 bootstrap/4.3.1/js/bootstrap.min.js。

    我不知道为什么图像会或可能导致轮播出现故障,但确实如此。我在其他地方也找不到对这个原因的参考,所以我在这里发帖以供后人使用,希望在其他解决方案失败时它可以帮助其他人。

    使用有限的“已知良好”图像集测试轮播。

    【讨论】:

    • 就我而言,在阅读了您的回答后,我发现 CSS 文件没问题,但缺少一个 javascript 文件。包含 Bootstrap 的 bootstrap.min.js 文件,它工作正常。谢谢。留下评论,因为它可能对未来的其他人有所帮助。
    【解决方案5】:

    对我来说,DreamWeaver CC 中的轮播无法正常工作,我正在使用的“模板”页面中提供了代码。我需要将 data-ride="carousel" 属性添加到 carousel div 以便它开始工作。感谢 Adarsh 的代码 sn-p 突出了缺失的属性。

    【讨论】:

      猜你喜欢
      • 2018-01-05
      • 1970-01-01
      • 2017-04-23
      • 2018-07-27
      • 2018-09-14
      • 2018-12-12
      • 2018-09-11
      • 1970-01-01
      相关资源
      最近更新 更多