当前位置:首页 > JavaScript

js 实现tab

2026-03-13 23:24:36JavaScript

使用纯JavaScript实现Tab切换功能

通过DOM操作和事件监听实现基础的Tab切换效果,无需依赖任何库。

// 获取所有tab标签和内容区域
const tabs = document.querySelectorAll('.tab');
const tabContents = document.querySelectorAll('.tab-content');

// 为每个tab添加点击事件
tabs.forEach(tab => {
  tab.addEventListener('click', () => {
    // 移除所有active类
    tabs.forEach(t => t.classList.remove('active'));
    tabContents.forEach(c => c.classList.remove('active'));

    // 添加active类到当前tab和对应内容
    tab.classList.add('active');
    const targetId = tab.getAttribute('data-target');
    document.getElementById(targetId).classList.add('active');
  });
});

添加CSS样式配合Tab效果

基础样式确保Tab切换时的视觉反馈。

.tab {
  display: inline-block;
  padding: 10px 20px;
  cursor: pointer;
  background: #f1f1f1;
}

.tab.active {
  background: #ddd;
  font-weight: bold;
}

.tab-content {
  display: none;
  padding: 20px;
  border: 1px solid #ddd;
}

.tab-content.active {
  display: block;
}

HTML结构示例

对应JavaScript和CSS的HTML基础结构。

<div class="tabs">
  <div class="tab active" data-target="content1">Tab 1</div>
  <div class="tab" data-target="content2">Tab 2</div>
  <div class="tab" data-target="content3">Tab 3</div>
</div>

<div id="content1" class="tab-content active">Content 1</div>
<div id="content2" class="tab-content">Content 2</div>
<div id="content3" class="tab-content">Content 3</div>

使用classList API优化

现代浏览器支持的classList方法比className操作更简洁可靠。

// 切换active类更安全的方式
element.classList.toggle('active');
element.classList.contains('active');

添加过渡动画效果

通过CSS transition让Tab切换更平滑。

.tab-content {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.tab-content.active {
  opacity: 1;
}

支持键盘导航

为可访问性添加键盘操作支持。

js  实现tab

tabs.forEach(tab => {
  tab.setAttribute('tabindex', '0');
  tab.addEventListener('keydown', (e) => {
    if (e.key === 'Enter' || e.key === ' ') {
      e.preventDefault();
      tab.click();
    }
  });
});

标签: jstab
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

vue 怎么实现tab

vue 怎么实现tab

Vue 实现 Tab 切换 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染(v-if/v-show)完成。以下是两种常见方法: 动态绑定 :is 实现 Tab 通过 :is 动态绑定…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…