当前位置:首页 > JavaScript

js实现active

2026-02-01 14:32:08JavaScript

使用 JavaScript 实现 active 状态

通过 JavaScript 动态添加或移除 active 类,可以高亮显示当前选中的元素。以下是几种常见实现方式:

js实现active

通过事件监听器切换 active 状态

// 获取所有需要添加 active 状态的元素
const items = document.querySelectorAll('.item');

// 遍历元素并添加点击事件
items.forEach(item => {
  item.addEventListener('click', function() {
    // 移除其他元素的 active 类
    items.forEach(el => el.classList.remove('active'));
    // 为当前点击元素添加 active 类
    this.classList.add('active');
  });
});

通过事件委托优化性能

// 在父元素上监听点击事件
document.querySelector('.container').addEventListener('click', function(e) {
  // 检查点击目标是否是需要添加 active 的元素
  if (e.target.classList.contains('item')) {
    // 移除所有同类的 active 类
    document.querySelectorAll('.item').forEach(el => {
      el.classList.remove('active');
    });
    // 为点击目标添加 active 类
    e.target.classList.add('active');
  }
});

配合 CSS 实现视觉反馈

.item {
  /* 默认样式 */
  background-color: #fff;
  color: #333;
}

.item.active {
  /* 激活状态样式 */
  background-color: #007bff;
  color: white;
}

在单页应用(SPA)中保持 active 状态

// 根据当前路由设置 active 状态
function setActiveNav() {
  const currentPath = window.location.pathname;
  const navLinks = document.querySelectorAll('.nav-link');

  navLinks.forEach(link => {
    if (link.getAttribute('href') === currentPath) {
      link.classList.add('active');
    } else {
      link.classList.remove('active');
    }
  });
}

// 页面加载时执行
window.addEventListener('DOMContentLoaded', setActiveNav);
// 路由变化时执行
window.addEventListener('popstate', setActiveNav);

使用 dataset 存储状态信息

const buttons = document.querySelectorAll('[data-action]');

buttons.forEach(button => {
  button.addEventListener('click', function() {
    // 移除所有按钮的 active 状态
    document.querySelectorAll('[data-action]').forEach(btn => {
      btn.classList.remove('active');
    });
    // 设置当前按钮为 active
    this.classList.add('active');

    // 获取 data-action 值执行相应操作
    const action = this.dataset.action;
    console.log(`执行操作: ${action}`);
  });
});

标签: jsactive
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

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

jquery js

jquery js

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

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现文字滚动

js实现文字滚动

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