【问题标题】:How to add an image slider for each react bootsrap card in a Card Deck如何为卡片组中的每个反应引导卡添加图像滑块
【发布时间】:2020-07-25 00:56:24
【问题描述】:

阅读官方react-bootstrap 文档后,我没有找到任何示例或在任何地方看到它。

我找到了如何在轮播中移动卡片元素的示例,但这不是我想要的。

我需要的是,对于每张卡片,不是显示单个静态图像,而是显示一系列可以像旋转木马一样滑动的图像。 (如果可能,轮播导航控件仅在悬停时显示)。

我怎么能得到这样的东西(Airbnb 示例):

Using the react component - Card Deck

【问题讨论】:

  • 您可以在卡片中放置轮播而不是图像

标签: html css reactjs bootstrap-4 react-bootstrap


【解决方案1】:

HTML 解决方案

我只是添加了carousel code 而不是image。我编码成简单的 HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

<div class="card-deck">
    <div class="card">
        <div id="carouselExampleIndicators1" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="#carouselExampleIndicators1" data-slide-to="0" class="active"></li>
                <li data-target="#carouselExampleIndicators1" data-slide-to="1"></li>
                <li data-target="#carouselExampleIndicators1" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=1" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=2" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=3" alt="image">
                </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators1" 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="#carouselExampleIndicators1" role="button" data-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="sr-only">Next</span>
            </a>
        </div>
        <div class="card-body">
            <h5 class="card-title">Card title</h5>
            <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
            <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
        </div>
    </div>
    <div class="card">
        <div id="carouselExampleIndicators2" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="#carouselExampleIndicators2" data-slide-to="0" class="active"></li>
                <li data-target="#carouselExampleIndicators2" data-slide-to="1"></li>
                <li data-target="#carouselExampleIndicators2" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=4" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=5" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=6" alt="image">
                </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators2" 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="#carouselExampleIndicators2" role="button" data-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="sr-only">Next</span>
            </a>
        </div>
        <div class="card-body">
            <h5 class="card-title">Card title</h5>
            <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
            <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
        </div>
    </div>
    <div class="card">
        <div id="carouselExampleIndicators3" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="#carouselExampleIndicators3" data-slide-to="0" class="active"></li>
                <li data-target="#carouselExampleIndicators3" data-slide-to="1"></li>
                <li data-target="#carouselExampleIndicators3" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=7" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=8" alt="image">
                </div>
                <div class="carousel-item">
                    <img class="w-100" src="https://picsum.photos/1920/1080?random=9" alt="image">
                </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators3" 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="#carouselExampleIndicators3" role="button" data-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="sr-only">Next</span>
            </a>
        </div>
        <div class="card-body">
            <h5 class="card-title">Card title</h5>
            <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
            <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
        </div>
    </div>
</div>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

反应解决方案

这里是你可以找到react-solution的链接

https://stackblitz.com/edit/react-3pzcic

【讨论】:

  • 感谢您的回答,我本来打算做这样的事情,但我是 React 的新手,我对组件有点困惑。你知道如何在反应中做到这一点吗?
  • 在 React 中制作一个轮播组件,并将图像数组和轮播 id 作为道具传递,所以没有重复
  • 我已经在 React 中有一个轮播组件,我在网页的另一部分使用它。我不认为我在关注你,你能举个例子吗?
  • 我加了react-solution,小心
  • 非常感谢!这就是我要找的!
猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 2016-01-07
相关资源
最近更新 更多