当前位置:首页 > JavaScript

js实现 active

2026-03-14 01:31:33JavaScript

实现 active 状态的 JavaScript 方法

在 JavaScript 中,实现 active 状态通常涉及动态添加或移除 CSS 类,以改变元素的样式。以下是几种常见的方法:

使用 classList API

通过 classList.add()classList.remove() 方法可以方便地切换 active 类:

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

直接修改 className 属性

对于较老浏览器兼容性,可以直接操作 className:

js实现 active

const btn = document.getElementById('button');
btn.onclick = function() {
  if (this.className.indexOf('active') === -1) {
    this.className += ' active';
  } else {
    this.className = this.className.replace('active', '');
  }
};

事件委托实现多个元素

当需要处理多个元素时,事件委托更高效:

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

配合 CSS 过渡效果

js实现 active

添加平滑的视觉反馈:

.button {
  transition: background-color 0.3s ease;
}
.button.active {
  background-color: #4CAF50;
}

实际应用示例

导航菜单高亮

const navItems = document.querySelectorAll('.nav-item');
navItems.forEach(item => {
  item.addEventListener('click', () => {
    navItems.forEach(i => i.classList.remove('active'));
    item.classList.add('active');
  });
});

表单输入框聚焦样式

const inputs = document.querySelectorAll('input');
inputs.forEach(input => {
  input.addEventListener('focus', () => {
    input.parentElement.classList.add('active');
  });
  input.addEventListener('blur', () => {
    input.parentElement.classList.remove('active');
  });
});

这些方法可以根据具体需求进行组合和调整,实现各种交互场景下的 active 状态效果。

标签: jsactive
分享给朋友:

相关文章

js实现自举

js实现自举

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

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…

vue.js 实现弹窗

vue.js 实现弹窗

Vue.js 实现弹窗的方法 使用组件化方式创建弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏。组件内包含弹窗的模板、样式和逻辑。 <t…

vue js实现轮播图

vue js实现轮播图

Vue.js 实现轮播图的方法 使用原生 Vue.js 实现 创建 Vue 组件 Carousel.vue,利用 v-for 和 v-bind:class 动态控制轮播项显示: <templa…