当前位置:首页 > JavaScript

js 实现标记

2026-03-14 10:50:25JavaScript

实现标记功能的方法

在JavaScript中实现标记功能通常涉及高亮文本、添加注释或标记特定元素。以下是几种常见场景的实现方式:

文本高亮标记

使用<mark>标签或CSS样式实现文本高亮:

// 使用<mark>标签包裹选中文本
function highlightText() {
  const selection = window.getSelection();
  if (selection.toString().length > 0) {
    const range = selection.getRangeAt(0);
    const mark = document.createElement("mark");
    range.surroundContents(mark);
  }
}

DOM元素标记

通过添加CSS类来标记页面元素:

function markElement(elementId) {
  const element = document.getElementById(elementId);
  element.classList.add('marked');
}

// CSS样式
.marked {
  border: 2px solid yellow;
  background-color: rgba(255,255,0,0.2);
}

数据标记

在数据对象中添加标记属性:

const data = [
  { id: 1, content: "Item 1", marked: false },
  { id: 2, content: "Item 2", marked: false }
];

function toggleMark(itemId) {
  const item = data.find(i => i.id === itemId);
  if (item) item.marked = !item.marked;
}

画布标记

在Canvas上实现绘图标记:

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

function drawMarker(x, y) {
  ctx.beginPath();
  ctx.arc(x, y, 10, 0, 2 * Math.PI);
  ctx.fillStyle = 'red';
  ctx.fill();
}

持久化标记

使用localStorage保存标记状态:

function saveMarkState(elementId, isMarked) {
  localStorage.setItem(`marked_${elementId}`, isMarked);
}

function loadMarkState(elementId) {
  return localStorage.getItem(`marked_${elementId}`) === 'true';
}

第三方库实现

使用专门的标记库如Marker.js:

js 实现标记

import { MarkerArea } from 'markerjs2';

function startMarking(targetId) {
  const markerArea = new MarkerArea(document.getElementById(targetId));
  markerArea.show();
}

每种方法适用于不同场景,文本高亮适合文档内容标记,DOM元素标记适合页面元素突出显示,数据标记适合应用状态管理,画布标记适合图像标注,持久化方法可保存标记状态,第三方库提供更完整的标记解决方案。

标签: 标记js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现祖玛

js实现祖玛

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

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…