当前位置:首页 > JavaScript

js实现高亮切换

2026-03-15 19:53:40JavaScript

实现高亮切换的 JavaScript 方法

方法一:通过类名切换高亮样式

通过添加或移除 CSS 类名实现高亮效果。定义一个高亮样式类(如 .highlight),通过 classList.toggle() 切换。

// CSS 样式
.highlight {
  background-color: yellow;
  color: black;
}

// JavaScript 代码
function toggleHighlight(element) {
  element.classList.toggle('highlight');
}

// 调用示例
document.querySelector('.target-element').addEventListener('click', function() {
  toggleHighlight(this);
});

方法二:动态修改内联样式

直接通过 JavaScript 修改元素的 style 属性,适用于需要动态计算高亮颜色的场景。

js实现高亮切换

function toggleHighlight(element) {
  const currentColor = element.style.backgroundColor;
  element.style.backgroundColor = currentColor === 'yellow' ? '' : 'yellow';
}

// 调用示例
document.querySelector('.target-element').addEventListener('click', function() {
  toggleHighlight(this);
});

方法三:多元素高亮切换(单选/多选模式)

实现多个元素中单选或多选的高亮效果。以下示例为单选模式:

js实现高亮切换

function setupHighlightGroup(selector) {
  const elements = document.querySelectorAll(selector);
  elements.forEach(el => {
    el.addEventListener('click', function() {
      elements.forEach(item => item.classList.remove('highlight'));
      this.classList.add('highlight');
    });
  });
}

// 调用示例
setupHighlightGroup('.highlight-group-item');

方法四:使用数据属性存储状态

通过 data-* 属性存储高亮状态,适合复杂交互场景。

function toggleHighlightWithData(element) {
  const isHighlighted = element.dataset.highlighted === 'true';
  element.dataset.highlighted = !isHighlighted;
  element.style.backgroundColor = isHighlighted ? '' : 'yellow';
}

// 调用示例
document.querySelector('.target-element').addEventListener('click', function() {
  toggleHighlightWithData(this);
});

注意事项

  1. 性能优化:批量操作 DOM 时使用 documentFragment 或减少重绘
  2. 可访问性:高亮时考虑添加 aria-selected 等 ARIA 属性
  3. 动画效果:可通过 CSS transition 添加平滑的高亮过渡效果
.highlight {
  background-color: yellow;
  transition: background-color 0.3s ease;
}

以上方法可根据具体需求选择使用,类名切换是最推荐的方式,因其实现了样式与行为的良好分离。

标签: js高亮
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现选题

js实现选题

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

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…