如果未加载图像,请删除轮播箭头

时间:2017-03-07 12:04:57

标签: javascript jquery html css twitter-bootstrap

我正在尝试在没有图像时从旋转木马中移除箭头。我尝试这样做的原因,仅仅是因为我试图将几个图像从数据库加载到一个给定部分的轮播中。此部分重复多次,并且不会始终包含图像。

我遇到的问题是,只要 bootstrap carousel 没有加载任何图片,它就会在侧面显示轮播箭头。这给当前部分带来了不好的表现,我想处理它。

  

如果没有任何图像,如何删除轮播箭头   载入旋转木马?

这是JsFiddle,其中包含了我迄今为止所做的工作,其中包括其他几篇文章。这只会删除第一张幻灯片上的左箭头和最后一张幻灯片上的右箭头。

在这里,您可以预览在没有图像时轮播看起来如何。我设置了 400px 黑色背景,以便更容易发现箭头。 Absent Images JsFiddle

这是我到目前为止的代码:

<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&text=one"></div>

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

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

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

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

                                        <div class="item" data-slide-number="5">
                                        <img src="http://placehold.it/770x300&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" id="arrow-right">
                                        <span class="glyphicon glyphicon-chevron-right"></span>                                       
                                    </a>                                
                                    </div>
                            </div>
                            </div>
                        </div>
                    </div>
                </div><!--/Slider-->
        </div>

JQuery代码:

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

    $('.carousel').carousel({
    interval: false,
})

$(document).ready(function () {               // on document ready
    checkitem();
});

            $('#myCarousel').on('slid.bs.carousel', checkitem);

            function checkitem()                        // check function
            {
          var $this = $('#myCarousel');
          if ($('.carousel-inner .item:first').hasClass('active')) {
              $this.children('.left.carousel-control').hide();
          } else if ($('.carousel-inner .item:last').hasClass('active')) {
              $this.children('.right.carousel-control').hide();
          } else {
              $this.children('.carousel-control').show();

          }
            }

      $("img").error(function(){
        $(this).hide('#arrow-right');
            });
});

以下是我已经检查过解决方案的答案: Link 1 Link 2
提前感谢

1 个答案:

答案 0 :(得分:0)

使用jQuery,您可以尝试类似..

$(document).ready(function(){
   if($('.carousel-inner .item img').attr('src') == '') { 
      $('.carousel-control').css('display', 'none');
    }
});

fiddle