HTML 结构
<div class="tabs"> <div class="tab-header"> <button class="tab-btn active" data-tab="tab1">Tab 1</button> <button class="tab-btn" data-tab="tab2">Tab 2</button> <button class="tab-add">+</button> </div> <div class="tab-content"> <div class="tab-pane active" id="tab1">Content 1</div> <div class="tab-pane" id="tab2">Content 2</div> </div> </div>
CSS 样式
.tab-btn.active { background-color: #ddd; } .tab-pane { display: none; } .tab-pane.active { display: block; }
JavaScript 实现
document.addEventListener('DOMContentLoaded', function() { const tabHeader = document.querySelector('.tab-header'); const tabContent = document.querySelector('.tab-content'); let tabCount = document.querySelectorAll('.tab-btn:not(.tab-add)').length; // 切换 Tab tabHeader.addEventListener('click', function(e) { if (e.target.classList.contains('tab-btn') && !e.target.classList.contains('tab-add')) { document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active')); document.querySelectorAll('.tab-pane').forEach(pane => pane.classList.remove('active')); e.target.classList.add('active'); const tabId = e.target.getAttribute('data-tab'); document.getElementById(tabId).classList.add('active'); } // 添加新 Tab if (e.target.classList.contains('tab-add')) { tabCount++; const newTabId = `tab${tabCount}`; // 创建新按钮 const newBtn = document.createElement('button'); newBtn.className = 'tab-btn'; newBtn.textContent = `Tab ${tabCount}`; newBtn.setAttribute('data-tab', newTabId); // 创建新内容面板 const newPane = document.createElement('div'); newPane.className = 'tab-pane'; newPane.id = newTabId; newPane.textContent = `Content ${tabCount}`; // 插入元素 e.target.insertAdjacentElement('beforebegin', newBtn); tabContent.appendChild(newPane); // 激活新 Tab document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active')); document.querySelectorAll('.tab-pane').forEach(pane => pane.classList.remove('active')); newBtn.classList.add('active'); newPane.classList.add('active'); } }); });
基本 Tab 切换 通过给按钮和内容面板添加 active 类来控制显示状态,点击非添加按钮时切换对应内容。
动态添加 Tab 点击 + 按钮时创建新的 Tab 按钮和内容面板,自动递增编号并激活新创建的 Tab。
DOM 操作 使用 insertAdjacentElement 在添加按钮前插入新按钮,使用 appendChild 在内容区域添加新面板。
注意事项 确保每个 Tab 按钮的 data-tab 属性与对应内容面板的 id 匹配,样式可根据实际需求调整。
使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…
Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue…
实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…
基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…
Vue 实现 Tab 切换的几种方法 使用 v-if/v-show 动态切换内容 通过 v-if 或 v-show 控制不同 Tab 内容的显示隐藏,配合点击事件切换当前激活的 Tab。 <…
使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…
2026-02-25 08:38:14
2026-02-25 08:35:30
2026-02-25 08:33:49
2026-02-25 08:32:06
2026-02-25 08:29:24