0.2.0 • Published 1 year ago

mark-stage v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

mark-stage

基于svg实现的网页元素上添加标记(如高亮、下划线等)

A js library for add svg marks (highlight, underline, etc.) on web page

高亮示例

Install

npm install mark-stage

<script src="../dist/markstage.umd.js"></script>

Quick Start

import { MarkStage, Highlight } from 'mark-stage';
//  const { MarkStage, Highlight } = marks;  // umd的全局名称为markstage

const stage = new MarkStage(document.querySelector('article'));

document.addEventListener("mouseup", markSelection, false);

function markSelection() {
  const selection = window.getSelection();
  const range = selection.getRangeAt(0);

  if (!selection.isCollapsed) {
    stage.add(new Highlight({
      range,
      classList: ['highlight']  // 自定义类名
    })); // add mark
  }
}

stage.event.on('click', function (e) {

  const uuid = e.target.getAttribute('data-uuid');

  stage.remove(uuid); // remove by mark.uuid
})

⚠ 注意:mark是通过在container下插入一个svg并进行绘制,svg通过position: absolute将自己覆盖在target之上产生重叠的效果

const containerPosition = window.getComputedStyle(container, null).position;  // 检测container的style的position设置
if (containerPosition === 'static' || !containerPosition) {
  container.style.position = 'relative';  // 如果container未设置适当的position,则会默认添加relative
}

Options

Stage

new MarkStage(target, container)
optiondescriptiondefault
target创建stage的目标元素-
containerstage的svg被插入的元素位置document.body

Mark

new Mark({...})
optiondescriptiondefault
range标记的元素范围Range-
classList自定义类名数组[]

Salute

marks-pane

0.2.0

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago