如何创建一个带有底部缩略图和右侧标题的Bootstrap轮播?

4
我正在使用Bootstrap 3x创建一个bootstrap轮播。我想要有两个div,一个用于显示大图(col-md-9),另一个用于显示相应的轮播标题(col-md-3)。我想在底部添加缩略图(col-md-12)。
目前,我能够显示带有缩略图的轮播,但当我尝试添加一个用于轮播标题的div时,它的显示效果不符合我的预期。 当前的代码:
<div class="container"> 
<div class ="row">
    <!--Carousel-->
 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
        <div id="carousel" class="carousel slide" data-ride="carousel">
            <div class="carousel-inner ">

                <div class="item active ">


                    <img class="image" src="img/construction.JPG">


                </div><!-- /item --> 

                <div class="item">

                    <img class="image" src="img/scaffolding.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/construction-iron.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/Bridge-Construction-Swale-Bridge.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/industrial-building-construction-scaffolding.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/men-at-building-construction.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/Construction-Workers.JPG">

                </div>

                <div class="item">

                    <img class="image" src="img/building-construction.JPG">

                </div>



            </div>
        </div>
    </div> <!-- /col-sm-6 -->
</div>
<div class ="row">
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 
    <div class="clearfix">
        <div id="thumbcarousel" class="carousel slide" data-interval="false">
            <div class="carousel-inner">
                <div class="item active">
                    <div data-target="#carousel" data-slide-to="0" class="thumb"><img src="img/construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="1" class="thumb"><img src="img/scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="2" class="thumb"><img src="img/construction-iron.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="3" class="thumb"><img src="img/Bridge-Construction-Swale-Bridge.JPG" width="100" height="100"></div>
                </div><!-- /item -->
                <div class="item">
                    <div data-target="#carousel" data-slide-to="4" class="thumb"><img src="img/industrial-building-construction-scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="5" class="thumb"><img src="img/men-at-building-construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="6" class="thumb"><img src="img/Construction-Workers.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="7" class="thumb"><img src="img/building-construction.JPG" width="100" height="100"></div>
                </div><!-- /item -->
            </div><!-- /carousel-inner -->
            <a class="left carousel-control" href="#thumbcarousel" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a class="right carousel-control" href="#thumbcarousel" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div> <!-- /thumbcarousel -->
    </div><!-- /clearfix -->
    </div> <!-- /col-sm-6 -->
</div>  

    <!-- /.carousel -->

</div><!--/.container-->

尝试1,带标题 以下代码存在问题,标题的文字不显示

<div class="container"> 
<div class ="row">
    <!--Carousel-->
 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
        <div id="carousel" class="carousel slide" data-ride="carousel">
            <div class="carousel-inner ">

                <div class="item active">

                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site! 5a4UkoC9vURkjKVHTBAgi7</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  

                </div><!-- /item --> 

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/scaffolding.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>

                <div class="item">
                    <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/construction-iron.JPG">
                    </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->  

                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/Bridge-Construction-Swale-Bridge.JPG">
                 </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/industrial-building-construction-scaffolding.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/men-at-building-construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/Construction-Workers.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/building-construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                </div>



            </div>
        </div>
    </div> <!-- /col-sm-6 -->
</div>
<div class ="row">
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 
    <div class="clearfix">
        <div id="thumbcarousel" class="carousel slide" data-interval="false">
            <div class="carousel-inner">
                <div class="item active">
                    <div data-target="#carousel" data-slide-to="0" class="thumb"><img src="img/construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="1" class="thumb"><img src="img/scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="2" class="thumb"><img src="img/construction-iron.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="3" class="thumb"><img src="img/Bridge-Construction-Swale-Bridge.JPG" width="100" height="100"></div>
                </div><!-- /item -->
                <div class="item">
                    <div data-target="#carousel" data-slide-to="4" class="thumb"><img src="img/industrial-building-construction-scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="5" class="thumb"><img src="img/men-at-building-construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="6" class="thumb"><img src="img/Construction-Workers.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="7" class="thumb"><img src="img/building-construction.JPG" width="100" height="100"></div>
                </div><!-- /item -->
            </div><!-- /carousel-inner -->
            <a class="left carousel-control" href="#thumbcarousel" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a class="right carousel-control" href="#thumbcarousel" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div> <!-- /thumbcarousel -->
    </div><!-- /clearfix -->
    </div> <!-- /col-sm-6 -->
</div>  

    <!-- /.carousel -->

</div><!--/.container-->

尝试带标题的版本 2

以下代码存在问题:当浏览器窗口较小时,标题文本不会显示在大屏幕上,而是出现在大图像区域。

<div class="container"> 
<div class ="row">
    <!--Carousel-->
 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
        <div id="carousel" class="carousel slide" data-ride="carousel">
            <div class="carousel-inner ">

                <div class="item active ">

                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->

                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site! 5a4UkoC9vURkjKVHTBAgi7</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div><!-- /item --> 

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/scaffolding.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site2!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div>

                <div class="item">
                    <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/construction-iron.JPG">
                    </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->  
                    <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/Bridge-Construction-Swale-Bridge.JPG">
                 </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->    
                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/industrial-building-construction-scaffolding.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->     
                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/men-at-building-construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/Construction-Workers.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div>

                <div class="item">
                <div class ="col-xs-12 col-sm-12 col-md-9 col-lg-9">
                    <img class="image" src="img/building-construction.JPG">
                </div><!-- /col-xs-9 col-sm-9 col-md-9 col-lg-9 -->
                <div class ="col-xs-12 col-sm-12 col-md-3 col-lg-3">
                    <div class="carousel-caption">
                        <h1>Welcome to our site!</h1>
                        <p>Take a look around and let us know if you have any questions.</p>
                    </div><!-- carousal-caption -->

                </div><!-- /col-xs-3 col-sm-3 col-md-3 col-lg-3 -->  
                </div>



            </div>
        </div>
    </div> <!-- /col-sm-6 -->
</div>
<div class ="row">
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 
    <div class="clearfix">
        <div id="thumbcarousel" class="carousel slide" data-interval="false">
            <div class="carousel-inner">
                <div class="item active">
                    <div data-target="#carousel" data-slide-to="0" class="thumb"><img src="img/construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="1" class="thumb"><img src="img/scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="2" class="thumb"><img src="img/construction-iron.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="3" class="thumb"><img src="img/Bridge-Construction-Swale-Bridge.JPG" width="100" height="100"></div>
                </div><!-- /item -->
                <div class="item">
                    <div data-target="#carousel" data-slide-to="4" class="thumb"><img src="img/industrial-building-construction-scaffolding.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="5" class="thumb"><img src="img/men-at-building-construction.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="6" class="thumb"><img src="img/Construction-Workers.JPG" width="100" height="100"></div>
                    <div data-target="#carousel" data-slide-to="7" class="thumb"><img src="img/building-construction.JPG" width="100" height="100"></div>
                </div><!-- /item -->
            </div><!-- /carousel-inner -->
            <a class="left carousel-control" href="#thumbcarousel" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a class="right carousel-control" href="#thumbcarousel" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div> <!-- /thumbcarousel -->
    </div><!-- /clearfix -->
    </div> <!-- /col-sm-6 -->
</div>  

    <!-- /.carousel -->

</div><!--/.container-->

类似于这个但适用于3.2的东西? - Aibrean
@Aibrean,看起来很像我要找的东西,但我正在寻找Bootstrap 3.2。我会尝试这个并检查是否可以将其转换为我想要的样子。谢谢。 - robinleathal
我有一个3.2的分支。我会将其发布为我的答案。 - Aibrean
@Aibrean 哦,太好了。请发布吧。我迫不及待想看看。 - robinleathal
@Aibrean 在你的例子中有额外的 jQuery 代码。我们不能不用它让它工作吗? - robinleathal
@Aibrean 当没有标题时,它可以在不需要额外的jQuery的情况下工作。就像在http://codepen.io/RetinaInc/pen/rxksh中一样。如果您有时间,能否简单解释一下为什么它不能在没有额外js的情况下工作? - robinleathal
1个回答

1

我已经从我给你的示例中创建了一个分支。

HTML:

<div class="container">
        <div id="main_area">
                <!-- Slider -->
                <div class="row">
                    <div class="col-xs-12" id="slider">
                        <!-- Top part of the slider -->
                        <div class="row">
                            <div class="col-sm-8" id="carousel-bounding-box">
                                <div class="carousel slide" id="myCarousel">
                                    <!-- Carousel items -->
                                    <div class="carousel-inner">
                                        <div class="active item" data-slide-number="0">
                                        <img src="http://placehold.it/770x300&amp;text=one"></div>

                                        <div class="item" data-slide-number="1">
                                        <img src="http://placehold.it/770x300&amp;text=two"></div>

                                        <div class="item" data-slide-number="2">
                                        <img src="http://placehold.it/770x300&amp;text=three"></div>

                                        <div class="item" data-slide-number="3">
                                        <img src="http://placehold.it/770x300&amp;text=four"></div>

                                        <div class="item" data-slide-number="4">
                                        <img src="http://placehold.it/770x300&amp;text=five"></div>

                                        <div class="item" data-slide-number="5">
                                        <img src="http://placehold.it/770x300&amp;text=six"></div>
                                    </div><!-- Carousel nav -->
                                    <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
                                        <span class="glyphicon glyphicon-chevron-left"></span>                                       
                                    </a>
                                    <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
                                        <span class="glyphicon glyphicon-chevron-right"></span>                                       
                                    </a>                                
                                    </div>
                            </div>

                            <div class="col-sm-4" id="carousel-text"></div>

                            <div id="slide-content" style="display: none;">
                                <div id="slide-content-0">
                                    <h2>Slider One</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>

                                <div id="slide-content-1">
                                    <h2>Slider Two</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>

                                <div id="slide-content-2">
                                    <h2>Slider Three</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>

                                <div id="slide-content-3">
                                    <h2>Slider Four</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>

                                <div id="slide-content-4">
                                    <h2>Slider Five</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>

                                <div id="slide-content-5">
                                    <h2>Slider Six</h2>
                                    <p>Lorem Ipsum Dolor</p>
                                    <p class="sub-text">October 24 2012 - <a href="#">Read more</a></p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div><!--/Slider-->

                <div class="row hidden-xs" id="slider-thumbs">
                        <!-- Bottom switcher of slider -->
                        <ul class="hide-bullets">
                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-0"><img src="http://placehold.it/170x100&amp;text=one"></a>
                            </li>

                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-1"><img src="http://placehold.it/170x100&amp;text=two"></a>
                            </li>

                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-2"><img src="http://placehold.it/170x100&amp;text=three"></a>
                            </li>

                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-3"><img src="http://placehold.it/170x100&amp;text=four"></a>
                            </li>

                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-4"><img src="http://placehold.it/170x100&amp;text=five"></a>
                            </li>

                            <li class="col-sm-2">
                                <a class="thumbnail" id="carousel-selector-5"><img src="http://placehold.it/170x100&amp;text=six"></a>
                            </li>
                        </ul>                 
                </div>
        </div>
</div>

CSS:
.hide-bullets {
list-style:none;
margin-left: -40px;
margin-top:20px;
}

JS:

  jQuery(document).ready(function($) {

        $('#myCarousel').carousel({
                interval: 5000
        });

        $('#carousel-text').html($('#slide-content-0').html());

        //Handles the carousel thumbnails
        $('[id^=carousel-selector-]').click( function(){
                var id_selector = $(this).attr("id");
                var id = id_selector.substr(id_selector.length -1);
                var id = parseInt(id);
                $('#myCarousel').carousel(id);
        });


        // When the carousel slides, auto update the text
        $('#myCarousel').on('slid.bs.carousel', function (e) {
                 var id = $('.item.active').data('slide-number');
                $('#carousel-text').html($('#slide-content-'+id).html());
        });
});

函数式 Bootply:http://www.bootply.com/zaKtDsH6V4


如果有人能够提供不需要额外的jQuery或JavaScript的解决方案,我会等待几天。 - robinleathal
是的,问题在于,当您将标题从项目内部分离出来时,它会变得混乱(因为数据不再与BS JavaScript库链接)。 - Aibrean
我还没有找到一个不需要js的。 - Robin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接