bootstrap的轮播如何用vue渲染

发布于 2022-09-11 17:29:34 字数 3429 浏览 19 评论 0

bootstrap官网轮播的例子:

<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleControls" 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="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

注意轮播部分是carousel-item 激活的class为crousel-item active

<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">

    <div class="carousel-item active" v-for="item of data" :key="item.key">
      <img class="d-block w-100" :src="item.key" alt="First slide">
    </div>

  </div>
  <a class="carousel-control-prev" href="#carouselExampleControls" 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="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

这样会出现问题,class都有active 全部都是激活的 就无法切换轮播了

我想是这样写的

<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    
    <div v-for="(item,index) of data">
    <div v-if="index==0">
        <div class="carousel-item active" :key="item.key">
          <img class="d-block w-100" src="item.img" alt="First slide">
        </div>
    </div>
    <div v-else>
       <div class="carousel-item " :key="item.key">
          <img class="d-block w-100" src="item.img" alt="First slide">
        </div>
    </div>
    
    
  </div>
  <a class="carousel-control-prev" href="#carouselExampleControls" 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="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

but这些写就不能切换了,请问下这个怎么解决呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蓦然回首 2022-09-18 17:29:34

bs不是有vue版本
https://bootstrap-vue.js.org/

时光病人 2022-09-18 17:29:34

先说说自己用vue写轮播的思路哈。

无缝循环就是首尾多两张图片,这个先不讨论,然后就是active的问题。
active的话,可以对自己原有的数据格式稍微加工一下,反正要有一个标识,例如:
[index: 0, src: ''],
[index: 1, src: '']
...

类似这样,vue代码里可以动态绑定class

<div v-for="(item, index) in data">
    <div :class="`item ${index === item.index ? 'active' : ''}`"></div>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文