JavaScript 动态页签(Tab)是一种常见的用户界面元素,允许用户在多个内容区域之间切换。动态页签通常具有增加和删除功能,以提供更灵活的用户体验。
以下是一个简单的JavaScript示例,展示如何实现一个具有增加和删除功能的动态页签。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Tabs</title>
<style>
.tab-container {
display: flex;
flex-direction: column;
}
.tab-buttons {
display: flex;
}
.tab-button {
padding: 10px;
margin-right: 5px;
cursor: pointer;
}
.tab-content {
display: none;
padding: 10px;
}
.active {
display: block;
}
</style>
</head>
<body>
<div class="tab-container">
<div class="tab-buttons">
<div class="tab-button active" data-tab="tab1">Tab 1</div>
<div class="tab-button" data-tab="tab2">Tab 2</div>
</div>
<div id="tab1" class="tab-content active">
Content for Tab 1
<button onclick="removeTab('tab1')">Remove</button>
</div>
<div id="tab2" class="tab-content">
Content for Tab 2
<button onclick="removeTab('tab2')">Remove</button>
</div>
</div>
<button onclick="addTab()">Add Tab</button>
<script>
let tabCounter = 3;
function addTab() {
const newTabId = `tab${tabCounter}`;
const newTabButton = document.createElement('div');
newTabButton.className = 'tab-button';
newTabButton.textContent = `Tab ${tabCounter}`;
newTabButton.setAttribute('data-tab', newTabId);
newTabButton.onclick = () => selectTab(newTabId);
const newTabContent = document.createElement('div');
newTabContent.id = newTabId;
newTabContent.className = 'tab-content';
newTabContent.innerHTML = `Content for Tab ${tabCounter}<button onclick="removeTab('${newTabId}')">Remove</button>`;
document.querySelector('.tab-buttons').appendChild(newTabButton);
document.querySelector('.tab-container').appendChild(newTabContent);
tabCounter++;
}
function removeTab(tabId) {
const tabButton = document.querySelector(`.tab-button[data-tab="${tabId}"]`);
const tabContent = document.getElementById(tabId);
if (tabButton && tabContent) {
tabButton.remove();
tabContent.remove();
}
}
function selectTab(tabId) {
const tabs = document.querySelectorAll('.tab-content');
tabs.forEach(tab => tab.classList.remove('active'));
document.getElementById(tabId).classList.add('active');
const buttons = document.querySelectorAll('.tab-button');
buttons.forEach(button => button.classList.remove('active'));
document.querySelector(`.tab-button[data-tab="${tabId}"]`).classList.add('active');
}
</script>
</body>
</html>
通过以上示例和解决方法,可以有效地实现和管理动态页签的功能。
领取专属 10元无门槛券
手把手带您无忧上云