js实现选项卡效果

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	*{
		margin: 0;
		padding: 0;
	}
	body{
	font-size: 14px;
	}
		span{
			display: inline-block;
			width: 189px;
			height: 32px;
			line-height: 32px;
			text-align: center;
			font-size: 16px;
			cursor: pointer;
		}
		.active{
			border-bottom: 4px solid #c3b598;
		}
		.login_a{
			width: 325px;
			height: 325px;
			/*border: 1px solid #ccc;*/
			text-align: center;
			line-height: 325px;
		}
		.login_b{
			width: 325px;
			height: 325px;
			/*border: 1px solid #ccc;*/
			text-align: center;
			line-height: 325px;
			display: none;
		}
	</style>
</head>
<body>
	<div class="login">
		<span class="active">登录</span><span>注册</span>
		<div class="login_a">登录板块</div>
		<div class="login_b">注册板块</div>
	</div>

	<script type="text/javascript">
		let divpages = document.querySelectorAll('.login>div');
		console.log(divpages);
		let navs = document.querySelectorAll('.login>span');

		for(let i=0;i<navs.length;i++){
			navs[i].onclick = function(e){
				let activedNav = this.parentNode.querySelector('.active');
				if(activedNav == this){
					return;
				}
				activedNav.className = '';
				this.className = 'active';
				let index = searchNavIndex(this);
				console.log(index);
				let activeIndex = searchNavIndex(activedNav);
				console.log(activeIndex);
				if(index > activeIndex){
					divpages[activeIndex].style.display = 'none';
					divpages[index].style.display = 'block';
				}
				else{
					 divpages[activeIndex].style.display = 'none';
        			divpages[index].style.display = 'block';
				}
			}

		}

			//	获取索引
		function searchNavIndex(navItem){
		    let index = -1;
		    for(let i = 0 ;i < navs.length; i++){
		      if(navs[i] === navItem){
		        index = i;
		        break;
		      }
		    }
		    return index;
		  }
	</script>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值