当前位置:首页 > JavaScript

js实现内容切换

2026-03-16 00:07:14JavaScript

使用 classList 切换类名

通过 JavaScript 的 classList.toggle() 方法可以动态添加或移除 CSS 类,实现内容切换效果。这种方法适用于需要改变元素样式的场景。

const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');

toggleBtn.addEventListener('click', () => {
  content.classList.toggle('active');
});

对应的 CSS 可以这样设置:

.content {
  display: none;
}
.content.active {
  display: block;
}

修改 innerHTML 或 textContent

直接替换元素内容是最直接的切换方式,适用于需要完全改变显示内容的场景。

const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');
let isOriginal = true;

toggleBtn.addEventListener('click', () => {
  if(isOriginal) {
    content.innerHTML = '<p>新内容</p>';
  } else {
    content.textContent = '原始内容';
  }
  isOriginal = !isOriginal;
});

使用 style 属性切换显示状态

通过修改元素的 style 属性可以实现显示/隐藏切换,这种方法不需要预先定义 CSS 类。

js实现内容切换

const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');

toggleBtn.addEventListener('click', () => {
  if(content.style.display === 'none') {
    content.style.display = 'block';
  } else {
    content.style.display = 'none';
  }
});

使用数据属性存储状态

对于复杂的内容切换,可以使用数据属性(data-*)来存储当前状态信息。

const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');

toggleBtn.addEventListener('click', () => {
  const currentState = content.dataset.state;

  if(currentState === 'hidden') {
    content.style.opacity = '1';
    content.dataset.state = 'visible';
  } else {
    content.style.opacity = '0';
    content.dataset.state = 'hidden';
  }
});

实现选项卡切换

对于多个内容之间的切换,可以使用选项卡模式。

js实现内容切换

const tabs = document.querySelectorAll('.tab');
const contents = document.querySelectorAll('.content');

tabs.forEach(tab => {
  tab.addEventListener('click', () => {
    const target = tab.dataset.target;

    contents.forEach(content => {
      content.classList.remove('active');
    });

    document.getElementById(target).classList.add('active');
  });
});

对应的 HTML 结构:

<div class="tabs">
  <button class="tab" data-target="content1">标签1</button>
  <button class="tab" data-target="content2">标签2</button>
</div>

<div id="content1" class="content active">内容1</div>
<div id="content2" class="content">内容2</div>

使用 CSS 动画增强效果

结合 CSS 过渡或动画可以实现更平滑的内容切换效果。

const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');

toggleBtn.addEventListener('click', () => {
  content.classList.toggle('fade');
});

对应的 CSS:

.content {
  opacity: 1;
  transition: opacity 0.3s ease;
}
.content.fade {
  opacity: 0;
}

标签: 内容js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promise…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现动画

js实现动画

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

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…