bootstrap实现选项卡

img


前端的实现选项卡,一共包括三部分首页、垃圾分类、关于作者。使用轮播图实现

在HTML中创建选项卡的框架,包括选项卡的标题和内容。使用Bootstrap的Tab组件可以实现

<ul class="nav nav-tabs">
  <li class="active"><a data-toggle="tab" href="#home">首页</a></li>
  <li><a data-toggle="tab" href="#garbage">垃圾分类</a></li>
  <li><a data-toggle="tab" href="#about">关于作者</a></li>
</ul>

<div class="tab-content">
  <div id="home" class="tab-pane fade in active">
    <h3>首页</h3>
    <p>这里是首页的内容。</p>
  </div>
  <div id="garbage" class="tab-pane fade">
    <h3>垃圾分类</h3>
    <p>这里是垃圾分类的内容。</p>
  </div>
  <div id="about" class="tab-pane fade">
    <h3>关于作者</h3>
    <p>这里是关于作者的内容。</p>
  </div>
</div>


然后,在JavaScript中添加轮播图的代码。使用Bootstrap的Carousel组件可以实现:

<div id="myCarousel" class="carousel slide" data-ride="carousel">
  <!-- 指示符 -->
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li data-target="#myCarousel" data-slide-to="2"></li>
  </ol>

  <!-- 轮播图片 -->
  <div class="carousel-inner">
    <div class="item active">
      <img src="img/slide1.jpg" alt="轮播图1">
      <div class="carousel-caption">
        <h3>轮播图1标题</h3>
        <p>轮播图1描述</p>
      </div>
    </div>

    <div class="item">
      <img src="img/slide2.jpg" alt="轮播图2">
      <div class="carousel-caption">
        <h3>轮播图2标题</h3>
        <p>轮播图2描述</p>
      </div>
    </div>

    <div class="item">
      <img src="img/slide3.jpg" alt="轮播图3">
      <div class="carousel-caption">
        <h3>轮播图3标题</h3>
        <p>轮播图3描述</p>
      </div>
    </div>
  </div>

  <!-- 左右切换按钮 -->
  <a class="left carousel-control" href="#myCarousel" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left"></span>
  </a>
  <a class="right carousel-control" href="#myCarousel" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right"></span>
  </a>
</div>


其中,data-ride="carousel"表示自动播放轮播图,carousel-indicators表示指示符,carousel-inner表示轮播图片,carousel-caption表示轮播图的标题和描述,left carousel-control和right carousel-control表示

保存下面的代码到html文件,直接执行就能得到你要的效果

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Bootstrap 选项卡动态切换</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/popper.js/2.9.3/umd/popper.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
    <style>
        .carousel-item {
            height: 300px;
        }
        .rubbish-image {
            display: none; /* 默认隐藏 */
            width: 500px;
            height: 300px;
            margin-top: 20px;
        }
    </style>
    <script>
      $(function() {
        // 切换选项卡时触发事件
        $('#myTab a').on('shown.bs.tab', function(e) {
          var tabId = $(e.target).attr('href'); // 获取当前选项卡标签的 href 属性
          if (tabId == '#rubbish') {
            $('.rubbish-image').show(); // 显示垃圾分类图片
          } else {
            $('.rubbish-image').hide(); // 隐藏垃圾分类图片
          }
        });
      });
    </script>
</head>
<body>
<div class="container">
    <h1 class="text-center mt-3">Bootstrap 选项卡动态切换</h1>
    <ul class="nav nav-tabs mt-3" id="myTab" role="tablist">
        <li class="nav-item">
            <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">首页</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" id="rubbish-tab" data-toggle="tab" href="#rubbish" role="tab" aria-controls="rubbish" aria-selected="false">垃圾分类</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" id="author-tab" data-toggle="tab" href="#author" role="tab" aria-controls="author" aria-selected="false">关于作者</a>
        </li>
    </ul>
    <div class="tab-content" id="myTabContent">
        <!-- 首页选项卡 -->
        <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
            <div id="carouselExampleIndicators" class="carousel slide mt-3" data-ride="carousel">
                <ol class="carousel-indicators">
                    <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
                    <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
                    <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
                </ol>
                <div class="carousel-inner">
                    <div class="carousel-item active">
                        <img src="https://picsum.photos/id/237/600/300" alt="轮播图1">
                    </div>
                    <div class="carousel-item">
                        <img src="https://picsum.photos/id/238/600/300" alt="轮播图2">
                    </div>
                    <div class="carousel-item">
                        <img src="https://picsum.photos/id/239/600/300" alt="轮播图3">
                    </div>
                </div>
                <a class="carousel-control-prev" href="#carouselExampleIndicators" 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="#carouselExampleIndicators" role="button" data-slide="next">
                    <span class="carousel-control-next-icon" aria-hidden="true"></span>
                    <span class="sr-only">Next</span>
                </a>
            </div>
        </div>
        <!-- 垃圾分类选项卡 -->
        <div class="tab-pane fade" id="rubbish" role="tabpanel" aria-labelledby="rubbish-tab">
            <img class="rubbish-image" src="https://picsum.photos/id/240/600/300" alt="垃圾分类图片">
        </div>
        <!-- 关于作者选项卡 -->
        <div class="tab-pane fade" id="author" role="tabpanel" aria-labelledby="author-tab">
            <p class="mt-3">这是一个 Bootstrap 选项卡动态切换的示例,适用于简单的多页面应用程序。您可以通过点击不同的选项卡来切换页面内容,也可以在 JavaScript 中根据选项卡的切换状态执行自定义的逻辑。</p>
        </div>
    </div>
</div>
</body>
</html>