javascript - svg.js:用鼠标选择元素

标签 javascript svg svg.js

我正在使用svg.js绘制一个带有几个框的 svg,如下所示:

enter image description here

SVG 内容如下所示:

<g id="1">
  <title>Box 1</title>
  <polygon id="target_1" fill="#fdb8d4" points="70 10 100 10 100 40 70 40"/>
</g>

我想在鼠标按下、移动和释放时选择一个或多个框,例如就像这张图片中所示的那样:

enter image description here

我找到了select plugin对于 svg.js,但它似乎无法完成这项工作。

有人能指出我正确的方向吗?是否有一些功能已经存在或者我需要从头开始实现它?

简单的 fiddle here .

最佳答案

发现一个名为 nuSelectable 的插件.

你可以像这样使用它 JSFIDDLE

<div class="svgContainer">
  <svg height="150" width="150" class="item">
    <circle cx="60" cy="60" r="50" style="fill: blue; stroke: black; stroke-width: 2px;" />
  </svg>
  <svg height="150" width="150" class="item">
    <circle cx="60" cy="60" r="50" style="fill: blue; stroke: black; stroke-width: 2px;" />
  </svg>
</div>

JS初始化代码:

$(function() {
  $('.svgContainer').nuSelectable({
    items: '.item',
    selectionClass: 'nu-selection-box',
    selectedClass: 'nu-selected',
    autoRefresh: true
  });
});

附注由于某种原因,选择框在 fiddle 中不可见,但在 chrome 中可见,请随意使用类 .nu-selection-box 对其进行样式设置。

关于javascript - svg.js:用鼠标选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48694538/

相关文章:

html - 在 HTML 代码中嵌入 SVG 文件时,如何在不同的浏览器上产生相同的结果?

javascript - 如何从 Polygon 动态更新 SVG viewBox 值

xcode - 尝试将 SVG 图像添加到 xcode Assets 时出错

javascript - 由于 svg,图表圈未显示在 fiddle 中

javascript - 如何在 svg.js 中将文本居中放置在矩形中?

javascript - 使用 svg.js 和 svg-pan-zoom 如何获取当前 "viewport"中心点?

javascript - 我们可以在 div 中附加 Angular Material 表单字段吗?

javascript - 如果从 js 代码设置值,则 maxlength 不起作用

javascript - Summernote 无法完全加载

javascript - 使用 Strope js 连接到 Prosody XMPP 服务器 (CONNFAIL)