问题标签 [jquery-svg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2692 浏览

javascript - 更快的 SVG 路径操作

所以我想用SVG制作一个绘图工具,我使用一种相当幼稚的方法来改变我的Path的d属性:

如您所见,我在 mousemove 函数上执行此操作。该代码有效,但是当我真正希望它是平滑线时,当鼠标快速移动创建许多直线时,它变得无响应。我认为这是因为我在 mousemove 事件上执行的大量字符串连接(当单击长时间保持时,路径上的 d 属性可能会变得非常大,实际上是数千个字符)。

我想知道是否有任何本机方法可以在路径末尾添加新值,而不是直接操作 d 属性。我检查了 jquery-svg 源代码,似乎该库在内部也使用了朴素的字符串连接模式,因此使用它的方法不会有任何好处。

另外我想知道是否是这种情况,或者浏览器是否只是限制了可以触发的 mousemove 事件的数量(每 X 毫秒一次?),因此没有性能优化可以改善这一点。

0 投票
1 回答
733 浏览

svg - jQuery-SVG 插件的奇怪缩放/移动问题

我正在使用来自http://keith-wood.name/svg.html的 jQuery SVG 插件,并且有一个奇怪的问题。

插件包非常好,启用简单的代码。但是,当我实现缩放和移动功能时,该代码仅适用于一台 PC,不适用于其他 PC 或智能手机。

我想找到根本原因并解决问题——以便缩放适用于所有平台。

适用于:一台带有 IE8 的 XP PC,带有 Adob​​e SVG Viewer 插件

不适用:带 Firefox 的 XP PC;Win 7 与 IE8、Firefox、Chrome;移动歌剧

相关代码如下。

任何帮助表示赞赏。

0 投票
1 回答
625 浏览

html - 多边形的属性不起作用

这个例子我可以看到属性。

jsFiddle 代码运行良好

这里相同的代码不起作用。

jsFiddle 代码不能正常工作

0 投票
1 回答
2368 浏览

javascript - SVG 路径命中测试

我在检测 SVG 路径元素上的鼠标悬停事件时遇到问题。似乎路径元素的 strokeWidth 越小,检测鼠标悬停的成功率就越低。

另外,我正在使用 jquery-svg 插件进行绘图。

下面是尝试在路径元素上使用 jquery mouseover 事件进行检测的小提琴。 鼠标悬停小提琴

下面是尝试通过将 mousemove 侦听器附加到 svg,然后使用 document.getElementFromPoint 来检测的小提琴。 getElementFromPoint 小提琴

这些似乎都不能可靠地工作,尤其是在鼠标快速移动的情况下。是否可以使这些中的任何一个更敏感以更好地检测鼠标悬停?或者也许是更好的方法?

0 投票
1 回答
364 浏览

canvas - Raphaeljs - 将一个简单的矩形编辑成复杂的多边形

背景:

我目前正在开发平面图编辑器,用户可以在其中创建房屋的平面图。

场景和问题:

有时,用户可能想要建造一个不是矩形而是 L 形的房间。我想让用户选择分割房间的特定墙壁,然后拖动分割墙壁的一部分 - 从而创建 L 形。这可以在这个令人惊叹的站点中最好地查看,其中可以选择房间的墙壁,然后拆分,并且可以拖动拆分部分之一。

问题:

A> 如何在 Raphaeljs 中复制此功能?请记住,稍后我将不得不访问房间的尺寸以进行一些计算。

B> 是否有任何其他方法(SVG/CANVAS 等)或任何其他库(processing.js、page.js、kinect.js、jQuery SVG 等)可以让我以更简单的方式构建平面规划器。

谢谢

0 投票
1 回答
1613 浏览

jquery - 使用 jQuery 加载外部 SVG 并更改 SVG

我需要加载现有的 SVG 文档以进行一些修改:更改颜色并用矩形替换所有圆圈。

我读了一篇关于使用 javascript 访问 SVG 节点、Raphael 扩展或 jQuery SVG 的文章。

我决定使用 jQuery SVG,因为(在我阅读的其中一个文档中写道:)不可能使用 Raphael 更改现有的加载 SVG。我不确定,如果这是真的。

另一方面,写了一些软件:jQuery SVG plugin is outdated?!

我不确定,如果这是正确的。

现在,我使用 jQuery SVG 插件来加载 SVG。SVG 由许多圆圈组成,如下所示:

现在应该可以:1.)通过更改类来更改所有圆圈的颜色dot和 2.)用矩形替换所有圆圈。

为了达到第一个目标,我使用svg.style(),如下所示:

这可行,但它向 SVG 添加了一个额外的样式元素/节点。

所以第一个问题是:如何更改/覆盖现有的样式元素?

达到第二个目标:我不知道如何处理。

我不知道,一般如何选择 SVG 元素。使用谷歌,我仍然一次又一次地找到相同的stackoverflow问题,这对我没有帮助。就我所知,jQuery SVG 文档也没有帮助。(因为缺少基础知识)

例如,这个改变所有圆半径的简单测试不起作用。

所以第二个问题是:如何选择一组 SVG 元素(按类或元素类型)以更改它们(或者我可能必须迭代槽?)?

谢谢你。

0 投票
1 回答
285 浏览

jquery - 我的第二个 svg 图像不会使用 Keith Woods JQuery svg 插件显示

我无法使用 Keith Woods JQuery svg 插件在我的页面上加载两个不同的svg 图像。这可能吗?如何?

以下代码按原样打印出我的第一个 svg 图像,但第二个不可见,并且<svg version="1.1" width="1647" height="760"/>在 Firebug Lite 中显示为“”,没有内容。(甚至错误的尺寸)

重新制作帖子,让它变得漂亮、舒适和干净。=)

0 投票
3 回答
94 浏览

javascript - 使用jquery更改矢量图形中节点的标题属性时出错

我有一个 SVG 格式的图形,我想实现一个功能,当鼠标指针悬停在它上面时,它会更改任何节点的标题属性,并在指针移开时返回旧标题。为了实现这一点,我正在尝试使用 jQuery 库,我的代码如下所示:

但是,由于某种原因,代码无法正常运行,我看不到预期的效果。关于这里出了什么问题的任何想法?

编辑:我想我知道问题是什么,但仍在寻找解决方案。因此,在矢量图形 html 代码中,节点表示为:

现在,我希望悬停动作更改文本之间的文本,<title> ... </title>并在鼠标指针移开时将其更改回来。

关于如何实现这一点的任何帮助?

PS:$(this).prop("title") 返回 undefined,所以这里的 title 不是节点元素的属性......那么,它是什么?以及如何改变?

非常感谢!

0 投票
2 回答
1628 浏览

javascript - 如何在 SVG 中为椭圆元素添加轮廓/边框?

我是 SVG 的新手。我想知道我可以使用什么属性为 SVG 代码中的椭圆元素添加轮廓/边框?实际上,我正在尝试使用 SVG 和 jQuery 制作交互式图形,因此我需要让某些选定的椭圆元素在事件发生时显示特定颜色(如深红色)的实心轮廓。我想知道如何做到这一点。

谢谢!

0 投票
1 回答
121 浏览

svg - svg元素拉伸

我正在使用 SVG 创建一个简单的绘图应用程序,用户可以在其中绘制圆形、矩形等,并根据需要进行放大和缩小。

我的主要问题是拉伸。我想创建一个拉伸按钮,它将所有 SVG 元素拉伸到浏览器的大小而不会扭曲它。

在我的设计中,页眉占用 50 像素,页脚占用 25 像素。所以实际的绘图空间是减去那个。

我还没有编写任何代码,bbox 和 viewbox 让我无处可去。