当前位置:首页 > JavaScript

js实现高亮

2026-04-05 06:08:12JavaScript

实现高亮的方法

使用CSS类切换 通过动态添加或移除CSS类来实现高亮效果。定义一个高亮样式类,在需要高亮时将其添加到元素上。

// CSS
.highlight {
  background-color: yellow;
  font-weight: bold;
}

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

// 使用示例
const targetElement = document.getElementById('target');
toggleHighlight(targetElement);

使用style属性直接修改 直接操作元素的style属性来改变外观,适合简单的高亮需求。

function highlightElement(element) {
  element.style.backgroundColor = 'yellow';
  element.style.fontWeight = 'bold';
}

function removeHighlight(element) {
  element.style.backgroundColor = '';
  element.style.fontWeight = '';
}

文本内容高亮

使用正则表达式替换 在文本内容中搜索关键词并包裹高亮标签,适用于大段文本的高亮处理。

function highlightText(text, keyword) {
  const regex = new RegExp(keyword, 'gi');
  return text.replace(regex, match => `<span class="highlight">${match}</span>`);
}

// 使用示例
const originalText = 'This is a sample text with keywords.';
const keyword = 'sample';
const highlightedText = highlightText(originalText, keyword);
document.getElementById('content').innerHTML = highlightedText;

动态搜索高亮

实时输入搜索高亮 结合输入事件实现实时搜索和高亮显示。

const searchInput = document.getElementById('search');
const content = document.getElementById('content');

searchInput.addEventListener('input', () => {
  const searchTerm = searchInput.value.trim();
  if (searchTerm) {
    const text = content.textContent;
    const highlighted = highlightText(text, searchTerm);
    content.innerHTML = highlighted;
  } else {
    content.innerHTML = content.textContent;
  }
});

持久高亮效果

使用自定义属性存储状态 通过data属性保存高亮状态,便于后续操作。

function togglePersistentHighlight(element) {
  const isHighlighted = element.dataset.highlighted === 'true';
  if (isHighlighted) {
    element.style.backgroundColor = '';
    element.dataset.highlighted = 'false';
  } else {
    element.style.backgroundColor = 'yellow';
    element.dataset.highlighted = 'true';
  }
}

性能优化建议

使用DocumentFragment 批量操作DOM时使用DocumentFragment减少重绘。

function highlightMultiple(elements) {
  const fragment = document.createDocumentFragment();
  elements.forEach(el => {
    const clone = el.cloneNode(true);
    clone.classList.add('highlight');
    fragment.appendChild(clone);
  });
  document.body.appendChild(fragment);
}

节流输入事件 对高频触发的事件进行节流处理。

js实现高亮

function throttle(func, delay) {
  let lastCall = 0;
  return function(...args) {
    const now = new Date().getTime();
    if (now - lastCall < delay) return;
    lastCall = now;
    return func.apply(this, args);
  };
}

searchInput.addEventListener('input', throttle(handleSearch, 300));

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

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现文字滚动

js实现文字滚动

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