当前位置:首页 > 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 = '';
}

文本内容高亮

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

js实现高亮

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属性保存高亮状态,便于后续操作。

js实现高亮

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);
}

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

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中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现祖玛

js实现祖玛

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

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…

js验证码实现

js验证码实现

验证码的基本原理 验证码(CAPTCHA)用于区分人类用户和自动化程序。常见类型包括图形验证码、滑动验证码、短信验证码等。JavaScript 可用于前端验证码的生成和验证逻辑。 图形验证码实现 使…