【问题标题】:Instead of next and previous arrow, Is it possible to show the next and previous slider image in bootstrap 4?是否可以在引导程序 4 中显示下一个和上一个滑块图像,而不是下一个和上一个箭头?
【发布时间】:2020-08-01 03:11:55
【问题描述】:

我正在为我的网站使用 bootstrap 4 图像轮播滑块。我尝试了下面的代码,它正在工作。

现在我要做的是,我必须显示下一个和上一个滑块图像,而不是下一个和上一个箭头。有可能吗?

这是之前的箭头示例。我必须显示带有箭头的图像。

示例

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<div id="carouselExampleFade" class="carousel slide carousel-fade" data-ride="carousel">
  <ol class="carousel-indicators">
    <li data-target="#carouselExampleFade" data-slide-to="0" class="active"></li>
    <li data-target="#carouselExampleFade" data-slide-to="1"></li>
    <li data-target="#carouselExampleFade" data-slide-to="2"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(45).jpg" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(46).jpg" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(47).jpg" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

【问题讨论】:

    标签: javascript html jquery twitter-bootstrap bootstrap-4


    【解决方案1】:

    您可以覆盖轮播类并在下一张和上一张图片上设置自己的 css

    试试这个代码

       
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <div id="carouselExampleFade" class="carousel slide carousel-fade" data-ride="carousel">
      <ol class="carousel-indicators">
        <li data-target="#carouselExampleFade" data-slide-to="0" class="active"></li>
        <li data-target="#carouselExampleFade" data-slide-to="1"></li>
        <li data-target="#carouselExampleFade" data-slide-to="2"></li>
      </ol>
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(45).jpg" alt="First slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(46).jpg" alt="Second slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="https://mdbootstrap.com/img/Photos/Slides/img%20(47).jpg" alt="Third slide">
        </div>
      </div>
      <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>
    
    <style>
         .carousel-control-prev-icon{width: 100px;height:250px;}
         .carousel-control-next-icon{width: 100px;height:250px;}
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <script>
        var next_src = $('.carousel-inner .active').next().find('.d-block').attr('src');
        var prev_src = $('.carousel-item').last().find('.d-block').attr('src');
        $('.carousel-control-prev-icon').css({"background-image": "url('"+prev_src+"')"});
        $('.carousel-control-next-icon').css({"background-image": "url('"+next_src+"')"});
        $('#carouselExampleFade').on('slid.bs.carousel', function () {
            var next_src = $('.carousel-inner .active').next().find('.d-block').attr('src');
            if(next_src == undefined){
                next_src = $('.carousel-item').first().find('.d-block').attr('src');
            }
            var prev_src = $('.carousel-inner .active').prev().find('.d-block').attr('src');
            if(prev_src == undefined){
                prev_src = $('.carousel-item').last().find('.d-block').attr('src');
            }
            $('.carousel-control-prev-icon').css({"background-image": "url('"+prev_src+"')"});
            $('.carousel-control-next-icon').css({"background-image": "url('"+next_src+"')"});
        })
    </script>

    如果您想使用背景图片作为幻灯片,请使用此 jquery 代码

    var next_src = $('.carousel-inner .active').next().css('background-image').replace('url(','').replace('")','').replace('"','');
    var prev_src = $('.carousel-item').last().css('background-image').replace('url(','').replace('")','').replace('"','');
    $('.carousel-control-prev-icon').css({"background-image": "url('"+prev_src+"')"});
    $('.carousel-control-next-icon').css({"background-image": "url('"+next_src+"')"});
    $('#carouselExampleFade').on('slid.bs.carousel', function () {
        var next_src = '';
        if($('.carousel-inner .active').next().length > 0){
            next_src = $('.carousel-inner .active').next().css('background-image').replace('url(','').replace('")','').replace('"','');
        }else{
            next_src = $('.carousel-item').first().css('background-image').replace('url(','').replace('")','').replace('"','');
        }
        
        var prev_src = $('.carousel-inner .active').prev().find('.d-block').attr('src');
        if($('.carousel-inner .active').prev().length > 0){
            prev_src = $('.carousel-inner .active').prev().css('background-image').replace('url(','').replace('")','').replace('"','');
        }else{
            prev_src = $('.carousel-item').last().css('background-image').replace('url(','').replace('")','').replace('"','');
        }
        $('.carousel-control-prev-icon').css({"background-image": "url('"+prev_src+"')"});
        $('.carousel-control-next-icon').css({"background-image": "url('"+next_src+"')"});
    })
    

    【讨论】:

    • OP question => 我必须显示下一个和上一个滑块图像,而不是下一个和上一个箭头。
    • @DilipPatel,您更改了箭头图像。我需要滑块图像,以便用户可以查看我的下一张图像
    • @user9437856 你想用下一个 img 代替箭头吗?
    • @AlwaysHelping,检查我的描述,我添加了带有屏幕截图的示例。
    • @user9437856 你想要像这个链接这样的滑块吗? materializecss.com/carousel.html
    【解决方案2】:

    据我了解,引导程序不支持该功能,但您可以通过将自定义类添加到轮播然后使用 css 将背景图像添加到箭头来解决此问题

    例如:

    <a class="carousel-control-prev" href="#carouselExampleFade
    

    将变为: https://www.w3schools.com/html/html_classes.asp 在这里,您可以看到带有 css 的 elem 中的图像示例: https://www.freecodecamp.org/news/how-to-add-an-image-url-to-your-div/

    【讨论】:

    • 感谢您的回复,您能帮我举个小例子吗?如何从自定义类开始?
    • 我想我可以理解 5/10。
    • 让我检查一下。给我时间
    • 嗨,是的,我检查了你的代码,但是如果我在你帮助我的时候添加背景图片,那么我只会得到两个静态图片,我必须显示滑块图片。
    • 啊,好吧,我明白了,你可以使用 jquery 来完成,所以每次滑块图像更改时,你都会获得上一个和下一个图像 url,然后将样式 background-image 设置为相应的箭头 div
    【解决方案3】:

    是的,您可以使用 bootstrap carousel

    在带有箭头标记的滑块中显示上一张和下一张图像

    查看我在这里提到的演示链接,希望它对你有用

    https://codepen.io/glebkema/pen/daLzpL

    <ol class="carousel-indicators">
      <li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
      <li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
      <li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
    </ol>
    
    <div class="carousel-inner">
      <div class="carousel-item active">
        <div class="item__third">
          <img src="//placehold.it/900x300/c69/f9c/?text=1" class="d-block w-100" alt="">
          <div class="carousel-caption d-none d-md-block">
            <h5>First slide label</h5>
            <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="item__third">
          <img src="//placehold.it/900x300/9c6/cf9/?text=2" class="d-block w-100" alt="">
          <div class="carousel-caption d-none d-md-block">
            <h5>Second slide label</h5>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="item__third">
          <img src="//placehold.it/900x300/69c/9cf/?text=3" class="d-block w-100" alt="">
          <div class="carousel-caption d-none d-md-block">
            <h5>Third slide label</h5>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
          </div>
        </div>
      </div>
    </div>
    
    <a class="carousel-control-prev" href="#carouselExampleCaptions" role="button" data-slide="prev">
      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleCaptions" role="button" data-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
    

    【讨论】:

    • 是的,我在上传问题之前检查了这一点。那对我不起作用。你能帮我举个例子吗?
    【解决方案4】:

    您好,试试这段代码并参考我的截图

    your images

    <!DOCTYPE html>
    <html lang='en' class=''>
    <head>
    <meta charset='UTF-8'>
    <title>CodePen Demo</title>
    <meta name="robots" content="noindex">
    <link rel="shortcut icon" type="image/x-icon" href="https://static.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico">
    <link rel="mask-icon" type="" href="https://static.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111">
    <link rel="canonical" href="https://codepen.io/glebkema/pen/daLzpL">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
    <style class="INLINE_PEN_STYLESHEET_ID">
        .show-neighbors {
      overflow: hidden;
    }
    .show-neighbors .carousel-indicators {
      margin-right: 25%;
      margin-left: 25%;
    }
    .show-neighbors .carousel-control-prev,
    .show-neighbors .carousel-control-next {
      background: rgba(255, 255, 255, 0.3);
      width: 25%;
      z-index: 11;
      /* .carousel-caption has z-index 10 */
    }
    .show-neighbors .carousel-inner {
      width: 150%;
      left: -25%;
    }
    .show-neighbors .carousel-item-next:not(.carousel-item-left),
    .show-neighbors .carousel-item-right.active {
      -webkit-transform: translate3d(33%, 0, 0);
      transform: translate3d(33%, 0, 0);
    }
    .show-neighbors .carousel-item-prev:not(.carousel-item-right),
    .show-neighbors .carousel-item-left.active {
      -webkit-transform: translate3d(-33%, 0, 0);
      transform: translate3d(-33%, 0, 0);
    }
    .show-neighbors .item__third {
      float: left;
      position: relative;
      /* captions can now be added */
      width: 33.33333333%;
    }
    
      </style>
    <script src="https://static.codepen.io/assets/editor/iframe/iframeConsoleRunner-7f4d47902dc785f30dedcac9c996b9f31d4dfcc33567cc48f0431bc918c2bf05.js"></script>
    <script src="https://static.codepen.io/assets/editor/iframe/iframeRefreshCSS-e03f509ba0a671350b4b363ff105b2eb009850f34a2b4deaadaa63ed5d970b37.js"></script>
    <script src="https://static.codepen.io/assets/editor/iframe/iframeRuntimeErrors-29f059e28a3c6d3878960591ef98b1e303c1fe1935197dae7797c017a3ca1e82.js"></script>
    </head>
    <body>
    <div class="bd-example">
    <div id="carouselExampleCaptions" class="carousel slide show-neighbors" data-ride="carousel">
    <ol class="carousel-indicators">
    <li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
    <li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
    <li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner">
    <div class="carousel-item active">
    <div class="item__third">
    <img src="https://mdbootstrap.com/img/Photos/Slides/img%20(45).jpg" alt="First slide"" class="d-block w-100">
    <div class="carousel-caption d-none d-md-block">
    <h5>First slide label</h5>
    <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
    </div>
    </div>
    </div>
    <div class="carousel-item">
    <div class="item__third">
    <img src="https://mdbootstrap.com/img/Photos/Slides/img%20(46).jpg" class="d-block w-100" alt="">
    <div class="carousel-caption d-none d-md-block">
    <h5>Second slide label</h5>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </div>
    </div>
    </div>
    <div class="carousel-item">
    <div class="item__third">
    <img src="https://mdbootstrap.com/img/Photos/Slides/img%20(47).jpg" class="d-block w-100" alt="">
    <div class="carousel-caption d-none d-md-block">
    <h5>Third slide label</h5>
    <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
    </div>
    </div>
    </div>
    </div>
    <a class="carousel-control-prev" href="#carouselExampleCaptions" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleCaptions" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
    </a>
    </div>
    </div>
    <script src="https://static.codepen.io/assets/common/stopExecutionOnTimeout-157cd5b220a5c80d4ff8e0e70ac069bffd87a61252088146915e8726e5d9f147.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script id="INLINE_PEN_JS_ID">
        $('.carousel-item', '.show-neighbors').each(function () {
      var next = $(this).next();
      if (!next.length) {
        next = $(this).siblings(':first');
      }
      next.children(':first-child').clone().appendTo($(this));
    }).each(function () {
      var prev = $(this).prev();
      if (!prev.length) {
        prev = $(this).siblings(':last');
      }
      prev.children(':nth-last-child(2)').clone().prependTo($(this));
    });
        //# sourceURL=pen.js
      </script>
    </body>
    </html>
    

    【讨论】:

    • 我更新了问题中的示例和预期输出。
    • 然后检查这个例子(Demo2)并告诉我menucool.com/jquery-slider
    • 不,不是那样的。完整图像和箭头我必须显示侧面图像
    • 为我提供完整的输出屏幕以满足您的要求,就像我在另一个答案中添加的方式一样。您添加的图像垂直显示,不清楚。
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2012-03-30
    相关资源
    最近更新 更多