当前位置:首页 > 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实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现vr

js实现vr

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

js实现密码

js实现密码

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

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…