【css常用布局】tab切换效果(小白向)

说明

本次点击切换的效果需要配合简单的javascript逻辑

效果展示

在这里插入图片描述

实现原理

HTML部分:

<div class="wrap">
    <div class="tab_wrap">
		<div class="tab_active"> <!-- 被点击按钮 -->
			<div class="tab_text">首页</div>
		</div>
		<div class="tab_no_active"> <!-- 未点击按钮 -->
			<div class="tab_text">手机商城</div>
		</div>
		<div class="tab_no_active"> <!-- 未点击按钮 -->
			<div class="tab_text">小米</div>
		</div>
	</div>
</div>

CSS部分:

.wrap {  // 这个只是用来居中例子中的显示内容
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	padding: 8px;
}

.tab_wrap {
	align-items: center;
	display: flex;
	justify-content: center;
}

.tab_active { // 被点击的tab按钮的类样式
	border-width: 1px;
	border-style: solid;
	border-color: rgba(0, 0, 0, 0.3) rgba(0, 0, 0, 0.3) transparent;  // 下边框为透明
	border-image: initial;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	cursor: pointer;
	padding: 16px;
}

.tab_no_active { // 未被点击的tab按钮的类样式
	border-bottom: 1px solid rgba(0, 0, 0, 0.3);
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	cursor: pointer;
	padding: 16px;
}

.tab_text {
	font-size: 12px;
}

JS部分:

let tabWrapObj = document.getElementsByClassName('tab_wrap')[0] 
let tabListObj = tabWrapObj.children  // 首先获取每个tab按钮的dom对象集合
for (let i = 0; i < tabListObj.length; i++) {  // 循环,给每个tab按钮都挂上一个点击事件
	tabListObj[i].onclick = function() {
		for (let j = 0; j < tabListObj.length; j++) {  // 先循环把每个tab按钮都清理为未点击的效果
			tabListObj[j].className = 'tab_no_active'
		}
		tabListObj[i].className = 'tab_active' // 然后再给被点击的tab按钮附上点击效果的类名
	}
}

完~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值