“Tab选项卡”制作

  • 什么是Tab选项卡:

       指将不同的内容重叠放置在某一布局区块内,重叠的内容区里的每次只有其中一层是可见的,用户通过鼠标点击或移到内容区所对应的标签上,来请求显示该层内容区。 

  • Tab选项卡的作用:

  1. 可以方便地在不同视图间浏览和切换。
  2. 提供了显示分组内容的功能。
  3. 简明扼要的描述了与标签相关的分组的内容。

1.制作的Tab选项卡效果图,如下:

 2.思路:

  • 分析网页结构
  • 需求分析
  • 书写代码

3.相应的代码,如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}

			html,
			body {
				width: 100%;
				height: 100vh;
				background-color: #282c34;
				display: flex;
				justify-content: center;
				align-items: center;
			}

			.box {
				width: 800px;
			}

			/*导航区样式*/
			.box .tabNav {
				width: 800px;
				height: 50px;
			}

			.box .tabNav ul {
				display: flex;
			}

			.box .tabNav li {
				width: 120px;
				height: 30px;
				padding: 10px 20px;
				background: #e5e9ea;
				list-style: none;
				margin-right: 2px;
				text-align: center;
				line-height: 30px;
				border-top-left-radius: 5px;
				border-top-right-radius: 5px;
				color: #607291;
				cursor: pointer;
				display: flex;
				position: relative;
				overflow: hidden;
			}

			.box .tabNav li img {
				width: 20px;
				opacity: 0.3;
				transition: opacity 0.3s;
				position: absolute;
				top: 15px;
				left: 50px;
			}

			.box .tabNav li:hover img {
				opacity: 1;
			}

			.box .tabNav li h4 {
				font-size: 15px;
				position: absolute;
				left: 80px;
			}

			.box .tabNav .active {
				background: #f9f9f9;
			}

			/*内容区样式*/
			.box .tabContent {
				width: 798px;
				background: #f9f9f9;
				position: relative;
				min-height: 280px;

				color: #607291;
			}

			.box .tabContent div {
				width: 798px;
				text-align: center;
				display: none;
			}

			.box .tabContent img {
				position: absolute;
				top: 70px;
				left: 40px;
			}

			.box .tabContent h2 {
				position: absolute;
				top: 20px;
				left: 210px;
			}

			.box .tabContent p {
				width: 558px;
				position: absolute;
				top: 70px;
				left: 210px;
				text-align: justify;
				text-indent: 2em;
				line-height: 25px;
				letter-spacing: 2px;
				font-size: 18px;
			}

			.box .tabContent button {
				width: 100px;
				height: 30px;
				position: absolute;
				bottom: 20px;
				right: 30px;
			}

			.box .tabContent button a {
				text-decoration: none;
			}

			.box .tabContent .show {
				display: block;
			}
		</style>
	</head>
	<body>
		<!--最外面的盒子-->
		<div class="box">
			<!--导航区-->
			<div class="tabNav">
				<ul>
					<li class="active">
						<img src="file:///D:/web前端/作业/Tab选项卡/image/字节.png" alt="">
						<h4>字节</h4>
					</li>
					<li>
						<img src="file:///D:/web前端/作业/Tab选项卡/image/阿里.png" alt="">
						<h4>阿里</h4>
					</li>
					<li>
						<img src="file:///D:/web前端/作业/Tab选项卡/image/腾讯.png" alt="">
						<h4>腾讯</h4>
					</li>
					<li>
						<img src="file:///D:/web前端/作业/Tab选项卡/image/京东.png" alt="">
						<h4>京东</h4>
					</li>
					<li>
						<img src="file:///D:/web前端/作业/Tab选项卡/image/百度.png" alt="">
						<h4>百度</h4>
					</li>
				</ul>
			</div>
			<!--内容区-->
			<div class="tabContent">
				<!--字节内容区-->
				<div class="show">
					<img src="file:///D:/web前端/作业/Tab选项卡/image/字节跳动01.png" alt="">
					<h2>字节</h2>
					<p>字节跳动,是一家位于中国北京的跨国互联网技术公司 ,成立于2012年3月,
						旗下有产品今日头条和抖音(及其海外版本TikTok)等。至2018年,字节跳动的
						移动应用月度用户超过十亿人,估值750亿美元,超越 Uber 成为全球最有价值的
						创业公司 。
					</p>
					<button><a href="https://www.bytedance.com">Look at all ></a></button>
				</div>
				<!--阿里内容区-->
				<div>
					<img src="file:///D:/web前端/作业/Tab选项卡/image/阿里巴巴01.png" alt="">
					<h2>阿里</h2>
					<p>阿里巴巴创建于1998年年底,总部设在香港(国际总部)及杭州(中国总部),
						并在海外设立美国硅谷、伦敦等分支机构 。阿里巴巴是目前全球最大的网上贸易市场,
						已成为全球首家拥有210万商人的电子商务网站,被商人们评为"最受欢迎的B2B网站"。
					</p>
					<button><a href="https://www.alibabagroup.com">Look at all ></a></button>
				</div>
				<!--腾讯内容区-->
				<div>
					<img src="file:///D:/web前端/作业/Tab选项卡/image/腾讯01.png" alt="">
					<h2>腾讯</h2>
					<p>腾讯公司成立于1998年11月,是目前中国最大的互联网综合服务提供商 之一,
						也是中国服务用户最多的互联网企业之一。成立15年多以来,腾讯一直秉承一切以
						用户价值为依归的经营理念 ,始终处于稳健、高速发展的状态;并正以前所未有的
						速度改变着人们的生活方式,创造着更广阔的互联网应用前景。
					</p>
					<button><a href="https://www.tencent.com">Look at all ></a></button>
				</div>
				<!--京东内容区-->
				<div>
					<img src="file:///D:/web前端/作业/Tab选项卡/image/京东01.png" alt="">
					<h2>京东</h2>
					<p>京东于2004年正式涉足电商领域。2014年5月,京东集团在美国纳斯达克证券
						交易所正式挂牌上市,是中国第一个成功赴美上市的综合型电商平台。京东集团定
						位于"以供应链为基础的技术与服务企业",目前业务已涉及零售、科技、物流、健
						康、保险、产发、海外和工业品等领域。
					</p>
					<button><a href="https://www.jd.com">Look at all ></a></button>
				</div>
				<!--百度内容区-->
				<div>
					<img src="file:///D:/web前端/作业/Tab选项卡/image/百度01.png" alt="">
					<h2>百度</h2>
					<p>百度公司2000年1月1日创立于中关村,创始人李彦宏拥有“超链分析”技术
						专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心
						技术的国家之一。百度每天响应来自100余个国家和地区的数十亿次搜索请求,是网
						民获取中文信息和服务的最主要入口,服务10亿互联网用户。
					</p>
					<button><a href="https://www.baidu.com">Look at all ></a></button>
				</div>
			</div>
		</div>

		<script>
			//需求分析:
			//1.当点击li时,被点击的li需要添加选中样式,其他的li需要回归默认样式
			//2.让当前li所对应的div内容,显示出来,并且其他的div要隐藏

			//找事件源
			//先找事件源的容器(它的父级)
			var tabNav = document.getElementsByClassName("tabNav")[0];
			//再找事件源
			var tabLis = tabNav.getElementsByTagName("li")

			//找到对应操作的div
			var tabContent = document.getElementsByClassName("tabContent")[0]
			var tabContentDivs = tabContent.getElementsByTagName("div")
			//依次的拿出li标签,分别添加对应的点击事件
			for (var n = 0; n < tabLis.length; n++) {
				//分发索引值
				tabLis[n].index = n;
				tabLis[n].onclick = function() {
					//this对象(谁触发的事件,this对象就指向谁)
					//排它法:先清除所有与它相关的类名(因为要通过类名将原本选中样式清除),然后让指定元素添加上"选中样式"
					for (var j = 0; j < tabLis.length; j++) { //清除所有li的className
						tabLis[j].className = ""
					}
					this.className = "active";
					//找到当前点击li所对应的div
					//console.log(tabContentDivs[this.index])
					for (var i = 0; i < tabContentDivs.length; i++) { //清除所有div的className
						tabContentDivs[i].className = ""
					}
					tabContentDivs[this.index].className = "show"
				}
			}
		</script>
	</body>
</html>

4.代码图片,如下:

 

5.补充:

事件编程的三要素:

  1. 事件源(谁触发的这个事件)。
  2. 事件(点击、鼠标进入、键盘输入等)。
  3. 事件处理函数(当发生事件时,要做什么事)。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Python中,通常使用库如`plotly`或`matplotlib`结合`ipywidgets`(对于Jupyter Notebook)来创建交互式选项卡或多图界面。`plotly`提供了强大的图表制作能力,并且可以直接在浏览器中展示,而`ipywidgets`则提供了构建用户界面的工具。 如果你想在Jupyter Notebook中创建选项卡,可以使用`ipywidgets`中的`Tab`或`Accordion`组件,配合`plotly.graph_objects`来绘制多个图表。以下是一个简单的例子: ```python import plotly.express as px import ipywidgets as widgets # 假设我们有三个数据集 data1 = ... data2 = ... data3 = ... fig1 = px.line(data1, x='x_column', y='y_column') fig2 = px.scatter(data2, x='x_column', y='y_column') fig3 = px.bar(data3, x='x_column', y='y_column') # 创建一个选项卡 tabs = widgets.Tab() tabs.children = [fig1, fig2, fig3] # 设置标签 tabs.set_title(0, 'Tab 1') tabs.set_title(1, 'Tab 2') tabs.set_title(2, 'Tab 3') # 显示选项卡 widgets.VBox([tabs]) ``` 在这个例子中,用户可以在不同的选项卡间切换,查看对应的图表。如果你没有在Jupyter环境中,`plotly`的`offline`模块可以帮助你在非浏览器环境下显示。 如果你有更具体的需求或者想要实现的功能,请提供更多的细节,以便我能给出更准确的帮助。下面是一些相关问题供你参考: 1. 你是否熟悉Jupyter Notebook的使用? 2. 你希望在选项卡中控制哪些交互功能,比如数据切换或者参数调整? 3. 你是否有特定的数据或者图表类型想要实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

继续冲冲冲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值