如何实现Tabs页签导航栏切换时,下划线也随之滑动
你可以使用HTML、CSS和JavaScript来实现这个功能。下面是一个简单的示例:
HTML结构:
<div class="tabs">
<button class="tab" id="tab1">Tab 1</button>
<button class="tab" id="tab2">Tab 2</button>
<button class="tab" id="tab3">Tab 3</button>
<div class="underline" id="underline"></div>
</div>
CSS样式:
.tabs {
display: flex;
align-items: center;
}
.tab {
margin-right: 10px;
padding: 10px;
border: none;
background-color: #f1f1f1;
cursor: pointer;
}
.underline {
height: 2px;
background-color: #000;
width: 0;
transition: width 0.3s ease;
}
JavaScript代码:
let tabs = document.querySelectorAll('.tab');
let underline = document.getElementById('underline');
tabs.forEach(tab => {
tab.addEventListener('click', function() {
tabs.forEach(tab => {
tab.classList.remove('active');
});
this.classList.add('active');
let activeTabWidth = this.offsetWidth;
underline.style.width = activeTabWidth + 'px';
underline.style.transform = 'translateX(' + (this.offsetLeft - 10) + 'px)'; // 减去10是为了与按钮的左边距保持一致
});
});
// 初始化,为第一个标签添加active类
tabs[0].click();
在这个示例中,我们为每个tab
按钮添加了一个点击事件监听器。当点击某个按钮时,我们首先移除所有按钮的active
类,然后给被点击的按钮添加active
类。同时,我们计算被点击按钮的宽度,并将其设置为下划线的宽度。我们还使用transform
属性将下划线移动到正确的位置。最后,我们在页面加载时为第一个标签添加active
类,以显示初始状态的下划线。
请注意,这个示例只是一个简单的实现,可能需要根据你的具体需求进行调整。例如,你可能需要添加更多的样式或动画效果,或者处理其他情况,如动态添加或删除标签等。
1 回答409 阅读
374 阅读
378 阅读
263 阅读
249 阅读
237 阅读
248 阅读
可以使用子页签样式SubTabBarStyle来实现,具体参考如下代码:
参考链接
子页签样式SubTabBarStyle