当前位置:首页 > JavaScript

js实现高亮

2026-03-02 05:10:46JavaScript

实现高亮的方法

使用原生JavaScript

通过操作DOM元素的style属性或类名实现高亮效果。以下是一个基础示例:

function highlightElement(elementId, color = 'yellow') {
  const element = document.getElementById(elementId);
  if (element) {
    element.style.backgroundColor = color;
  }
}

使用CSS类切换

定义高亮样式类,通过JavaScript动态添加/移除类名:

.highlight {
  background-color: yellow;
  font-weight: bold;
}
function toggleHighlight(elementId) {
  const element = document.getElementById(elementId);
  if (element) {
    element.classList.toggle('highlight');
  }
}

文本范围高亮

对于文本节点中的特定内容,可使用RangeDocumentFragment

function highlightText(text, containerId, highlightClass = 'highlight') {
  const container = document.getElementById(containerId);
  if (!container) return;

  const content = container.innerHTML;
  const regex = new RegExp(text, 'gi');
  const highlighted = content.replace(regex, 
    match => `<span class="${highlightClass}">${match}</span>`
  );
  container.innerHTML = highlighted;
}

使用第三方库

Mark.js等专门的高亮库提供更丰富的功能:

// 使用Mark.js库
const instance = new Mark(document.getElementById('content'));
instance.mark('keyword', {
  className: 'custom-highlight',
  accuracy: 'exactly'
});

动态搜索高亮

结合输入框实现实时高亮:

document.getElementById('search-input').addEventListener('input', (e) => {
  const keyword = e.target.value.trim();
  const marker = new Mark(document.querySelector('article'));
  marker.unmark().mark(keyword);
});

注意事项

  • 性能优化:频繁DOM操作时考虑使用文档片段或防抖技术
  • 可访问性:高亮颜色需满足WCAG对比度标准
  • 撤销功能:保留原始内容副本以便恢复
  • 嵌套处理:注意处理HTML标签嵌套时的文本匹配问题

以上方法可根据具体需求组合使用,CSS类切换方式推荐用于大多数场景,因其更易维护和扩展样式。

js实现高亮

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

相关文章

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(…

js实现图片放大

js实现图片放大

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