当前位置:首页 > 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 状态:

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 优化滚动检测

js实现 active

标签: jsactive
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const…

js实现自举

js实现自举

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