在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>