tab栏切换制作(原生js版本)

在这里插入图片描述
效果展示:
在这里插入图片描述
代码展示:

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

			#container {
				/* background-color: red; */
				width: 800px;
				margin: 100px auto;
			}

			#header {
				/* background-color: pink; */
			}

			ul {
				list-style: none;
				display: flex;
				flex-flow: row nowrap;
				height: 50px;
				line-height: 50px;
			}

			li {
				flex-grow: 1;
				border: 1px solid skyblue;
				background-color: lightgray;
				/* text-align: center; */
				/* background-color: skyblue; */
			}

			.item {
				display: none;
			}

			.current {
				background-color: pink;
			}

			.show {
				display: block;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="header">
				<ul>
					<li class="current">商品介绍</li>
					<li>规格与包装</li>
					<li>售后保障</li>
					<li>商品评价</li>
					<li>手机社区</li>
				</ul>
			</div>
			<div id="footer">
				<div class="show">商品介绍</div>
				<div class="item">规格预包装</div>
				<div class="item">售后保障</div>
				<div class="item">商品评价</div>
				<div class="item">手机社区</div>
			</div>
		</div>
		<script>
			//获取元素对象集合
			var lis = document.querySelector("#header").querySelectorAll('li');
			//循环给每个li元素添加点击事件
			for (var i = 0; i < lis.length; i++) {
				lis[i].setAttribute("index", i); //给每个li添加一个自定义属性index作为标记
				lis[i].onclick = function() {
					//进行排他思想先清除所有的背景颜色
					for (var i = 0; i < lis.length; i++) {
						lis[i].className = '';
					}
					//只留下当前操作的元素改变背景颜色
					this.className = 'current';

					//显示内容模块
					//获取内容模块元素对象集合
					var divs = document.querySelector('#footer').querySelectorAll('div');
					//排他思想循环将所有的div隐藏
					for (var i = 0; i < divs.length; i++) {
						divs[i].className = 'item';
					}
					var indexs = this.getAttribute("index"); //点击那个li就获取那个li的index属性值
					divs[indexs].className='show';
				}
			}
		</script>
	</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值