当前位置:首页 > JavaScript

js实现div切换

2026-03-01 06:16:58JavaScript

使用 classList 切换显示

通过 classList 的 toggle 方法控制 CSS 的 display 属性实现切换效果。HTML 结构中包含切换按钮和目标 div 元素:

<button id="toggleBtn">切换显示</button>
<div id="contentDiv" class="hidden">这是要切换的内容</div>

CSS 定义隐藏样式:

.hidden {
  display: none;
}

JavaScript 实现切换逻辑:

document.getElementById('toggleBtn').addEventListener('click', function() {
  document.getElementById('contentDiv').classList.toggle('hidden');
});

动态修改 style 属性

直接操作元素的 style 对象实现即时样式切换,适用于需要动态计算样式值的场景:

const div = document.getElementById('contentDiv');
document.getElementById('toggleBtn').addEventListener('click', function() {
  div.style.display = div.style.display === 'none' ? 'block' : 'none';
});

多 div 选项卡切换

实现多个内容区块的选项卡式切换,需要维护当前激活状态的索引:

<div class="tab-buttons">
  <button class="tab-btn active" data-tab="tab1">标签1</button>
  <button class="tab-btn" data-tab="tab2">标签2</button>
</div>
<div class="tab-content">
  <div id="tab1" class="tab-panel active">内容1</div>
  <div id="tab2" class="tab-panel">内容2</div>
</div>

JavaScript 实现:

document.querySelectorAll('.tab-btn').forEach(btn => {
  btn.addEventListener('click', function() {
    // 移除所有激活状态
    document.querySelectorAll('.tab-btn, .tab-panel').forEach(el => {
      el.classList.remove('active');
    });

    // 设置当前激活状态
    this.classList.add('active');
    document.getElementById(this.dataset.tab).classList.add('active');
  });
});

动画过渡效果

结合 CSS transition 实现平滑的显示/隐藏动画效果:

.fade {
  opacity: 0;
  height: 0;
  overflow: hidden;
  transition: opacity 0.3s, height 0.3s;
}

.fade.show {
  opacity: 1;
  height: auto;
}

JavaScript 控制类名切换:

document.getElementById('toggleBtn').addEventListener('click', function() {
  document.getElementById('contentDiv').classList.toggle('show');
});

使用 jQuery 简化操作

如果项目中使用 jQuery 库,可以更简洁地实现切换效果:

js实现div切换

$('#toggleBtn').click(function() {
  $('#contentDiv').toggle();
});

// 带有动画效果的版本
$('#toggleBtn').click(function() {
  $('#contentDiv').fadeToggle(300);
});

标签: jsdiv
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现密码

js实现密码

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