当前位置:首页 > JavaScript

js实现 active

2026-02-01 03:18:41JavaScript

实现 Active 状态的 JavaScript 方法

使用 JavaScript 动态添加或移除元素的 active 类,可以通过事件监听和 DOM 操作完成。以下是几种常见场景的实现方式。

点击切换单个元素的 active 状态

为单个元素添加点击事件,切换其 active 类:

const button = document.querySelector('.button');
button.addEventListener('click', function() {
  this.classList.toggle('active');
});

点击切换多个元素中的 active 状态

在列表或选项卡中,确保只有一个元素保持 active 状态:

const items = document.querySelectorAll('.item');
items.forEach(item => {
  item.addEventListener('click', function() {
    items.forEach(i => i.classList.remove('active'));
    this.classList.add('active');
  });
});

通过父元素委托事件

利用事件委托优化性能,适合动态加载的元素:

const container = document.querySelector('.container');
container.addEventListener('click', function(e) {
  if (e.target.classList.contains('item')) {
    document.querySelectorAll('.item').forEach(el => el.classList.remove('active'));
    e.target.classList.add('active');
  }
});

结合 CSS 过渡效果

在 JavaScript 中添加类时,配合 CSS 实现平滑过渡:

.button.active {
  background-color: #4CAF50;
  transform: scale(1.05);
  transition: all 0.3s ease;
}

根据滚动位置设置 active

为导航菜单根据滚动位置自动设置 active 状态:

js实现 active

window.addEventListener('scroll', function() {
  const sections = document.querySelectorAll('section');
  const navLinks = document.querySelectorAll('.nav-link');

  sections.forEach((sec, index) => {
    const rect = sec.getBoundingClientRect();
    if (rect.top <= 100 && rect.bottom >= 100) {
      navLinks.forEach(link => link.classList.remove('active'));
      navLinks[index].classList.add('active');
    }
  });
});

注意事项

  • 确保 CSS 中已定义 .active 类的样式
  • 动态创建的元素需重新绑定事件或使用事件委托
  • 移动端考虑添加 touchstart 事件兼容性
  • 性能敏感场景建议使用 requestAnimationFrame 优化滚动检测

标签: jsactive
分享给朋友:

相关文章

js实现分页

js实现分页

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

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…