要实现指示器覆盖在选项卡上而不是相反,可以通过以下步骤来实现:
以下是一个示例代码,演示如何实现指示器覆盖在选项卡上:
HTML代码:
<div class="tabs">
<ul>
<li class="active">选项卡1</li>
<li>选项卡2</li>
<li>选项卡3</li>
</ul>
<div class="indicator"></div>
</div>
CSS代码:
.tabs {
position: relative;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
display: flex;
}
li {
padding: 10px 20px;
background-color: #f2f2f2;
border: 1px solid #ccc;
cursor: pointer;
}
li.active {
background-color: #ccc;
}
.indicator {
position: absolute;
top: 0;
left: 0;
height: 3px;
background-color: #333;
width: 100px; /* 根据需要设置指示器的宽度 */
transition: left 0.3s ease;
}
JavaScript代码:
const tabs = document.querySelectorAll('.tabs li');
const indicator = document.querySelector('.indicator');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
tabs.forEach(tab => tab.classList.remove('active'));
tab.classList.add('active');
const activeTab = document.querySelector('.tabs li.active');
const activeTabWidth = activeTab.offsetWidth;
const activeTabLeft = activeTab.offsetLeft;
indicator.style.width = `${activeTabWidth}px`;
indicator.style.left = `${activeTabLeft}px`;
});
});
这样,当用户点击选项卡时,指示器会根据当前选中的选项卡的位置和宽度进行相应的调整,实现指示器覆盖在选项卡上的效果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云