Tab标签栏是一种常见的用户界面元素,用于在不同的内容区域之间切换。左右滑动功能则允许用户通过手势或按钮来滚动查看标签栏中的选项。
<div class="tab-container">
<div class="tab-header">
<div class="tab-item active">Tab 1</div>
<div class="tab-item">Tab 2</div>
<div class="tab-item">Tab 3</div>
<div class="tab-item">Tab 4</div>
<div class="tab-item">Tab 5</div>
</div>
<div class="tab-content">
<div class="tab-pane active">Content for Tab 1</div>
<div class="tab-pane">Content for Tab 2</div>
<div class="tab-pane">Content for Tab 3</div>
<div class="tab-pane">Content for Tab 4</div>
<div class="tab-pane">Content for Tab 5</div>
</div>
</div>
<button class="scroll-left">Scroll Left</button>
<button class="scroll-right">Scroll Right</button>
.tab-container {
width: 100%;
overflow: hidden;
}
.tab-header {
display: flex;
overflow-x: auto;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch; /* For smooth scrolling on iOS */
}
.tab-item {
padding: 10px 20px;
cursor: pointer;
white-space: nowrap;
}
.tab-content {
padding: 20px;
}
.tab-pane {
display: none;
}
.tab-pane.active {
display: block;
}
document.addEventListener('DOMContentLoaded', function() {
const tabHeader = document.querySelector('.tab-header');
const scrollLeftBtn = document.querySelector('.scroll-left');
const scrollRightBtn = document.querySelector('.scroll-right');
scrollLeftBtn.addEventListener('click', () => {
tabHeader.scrollBy({ left: -100, behavior: 'smooth' });
});
scrollRightBtn.addEventListener('click', () => {
tabHeader.scrollBy({ left: 100, behavior: 'smooth' });
});
tabHeader.addEventListener('click', (event) => {
if (event.target.classList.contains('tab-item')) {
const tabs = document.querySelectorAll('.tab-item');
tabs.forEach(tab => tab.classList.remove('active'));
event.target.classList.add('active');
const panes = document.querySelectorAll('.tab-pane');
panes.forEach(pane => pane.classList.remove('active'));
const activeTab = event.target.textContent;
document.querySelector(`.tab-pane:nth-child(${Array.from(tabs).indexOf(event.target) + 1})`).classList.add('active');
}
});
});
scroll-behavior
属性未正确设置或浏览器兼容性问题。scroll-behavior: smooth;
并在必要时添加前缀(如-webkit-overflow-scrolling: touch;
)。通过以上步骤和代码示例,可以实现一个基本的左右滑动的Tab标签栏,并解决常见的实现问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云