问题标签 [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.
javascript - 更快的 SVG 路径操作
所以我想用SVG制作一个绘图工具,我使用一种相当幼稚的方法来改变我的Path的d属性:
如您所见,我在 mousemove 函数上执行此操作。该代码有效,但是当我真正希望它是平滑线时,当鼠标快速移动创建许多直线时,它变得无响应。我认为这是因为我在 mousemove 事件上执行的大量字符串连接(当单击长时间保持时,路径上的 d 属性可能会变得非常大,实际上是数千个字符)。
我想知道是否有任何本机方法可以在路径末尾添加新值,而不是直接操作 d 属性。我检查了 jquery-svg 源代码,似乎该库在内部也使用了朴素的字符串连接模式,因此使用它的方法不会有任何好处。
另外我想知道是否是这种情况,或者浏览器是否只是限制了可以触发的 mousemove 事件的数量(每 X 毫秒一次?),因此没有性能优化可以改善这一点。
svg - jQuery-SVG 插件的奇怪缩放/移动问题
我正在使用来自http://keith-wood.name/svg.html的 jQuery SVG 插件,并且有一个奇怪的问题。
插件包非常好,启用简单的代码。但是,当我实现缩放和移动功能时,该代码仅适用于一台 PC,不适用于其他 PC 或智能手机。
我想找到根本原因并解决问题——以便缩放适用于所有平台。
适用于:一台带有 IE8 的 XP PC,带有 Adobe SVG Viewer 插件
不适用:带 Firefox 的 XP PC;Win 7 与 IE8、Firefox、Chrome;移动歌剧
相关代码如下。
任何帮助表示赞赏。
javascript - SVG 路径命中测试
我在检测 SVG 路径元素上的鼠标悬停事件时遇到问题。似乎路径元素的 strokeWidth 越小,检测鼠标悬停的成功率就越低。
另外,我正在使用 jquery-svg 插件进行绘图。
下面是尝试在路径元素上使用 jquery mouseover 事件进行检测的小提琴。 鼠标悬停小提琴
下面是尝试通过将 mousemove 侦听器附加到 svg,然后使用 document.getElementFromPoint 来检测的小提琴。 getElementFromPoint 小提琴
这些似乎都不能可靠地工作,尤其是在鼠标快速移动的情况下。是否可以使这些中的任何一个更敏感以更好地检测鼠标悬停?或者也许是更好的方法?
canvas - Raphaeljs - 将一个简单的矩形编辑成复杂的多边形
背景:
我目前正在开发平面图编辑器,用户可以在其中创建房屋的平面图。
场景和问题:
有时,用户可能想要建造一个不是矩形而是 L 形的房间。我想让用户选择分割房间的特定墙壁,然后拖动分割墙壁的一部分 - 从而创建 L 形。这可以在这个令人惊叹的站点中最好地查看,其中可以选择房间的墙壁,然后拆分,并且可以拖动拆分部分之一。
问题:
A> 如何在 Raphaeljs 中复制此功能?请记住,稍后我将不得不访问房间的尺寸以进行一些计算。
B> 是否有任何其他方法(SVG/CANVAS 等)或任何其他库(processing.js、page.js、kinect.js、jQuery SVG 等)可以让我以更简单的方式构建平面规划器。
谢谢
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 元素(按类或元素类型)以更改它们(或者我可能必须迭代槽?)?
谢谢你。
jquery - 我的第二个 svg 图像不会使用 Keith Woods JQuery svg 插件显示
我无法使用 Keith Woods JQuery svg 插件在我的页面上加载两个不同的svg 图像。这可能吗?如何?
以下代码按原样打印出我的第一个 svg 图像,但第二个不可见,并且<svg version="1.1" width="1647" height="760"/>
在 Firebug Lite 中显示为“”,没有内容。(甚至错误的尺寸)
重新制作帖子,让它变得漂亮、舒适和干净。=)
javascript - 使用jquery更改矢量图形中节点的标题属性时出错
我有一个 SVG 格式的图形,我想实现一个功能,当鼠标指针悬停在它上面时,它会更改任何节点的标题属性,并在指针移开时返回旧标题。为了实现这一点,我正在尝试使用 jQuery 库,我的代码如下所示:
但是,由于某种原因,代码无法正常运行,我看不到预期的效果。关于这里出了什么问题的任何想法?
编辑:我想我知道问题是什么,但仍在寻找解决方案。因此,在矢量图形 html 代码中,节点表示为:
现在,我希望悬停动作更改文本之间的文本,<title> ... </title>
并在鼠标指针移开时将其更改回来。
关于如何实现这一点的任何帮助?
PS:$(this).prop("title") 返回 undefined,所以这里的 title 不是节点元素的属性......那么,它是什么?以及如何改变?
非常感谢!
javascript - 如何在 SVG 中为椭圆元素添加轮廓/边框?
我是 SVG 的新手。我想知道我可以使用什么属性为 SVG 代码中的椭圆元素添加轮廓/边框?实际上,我正在尝试使用 SVG 和 jQuery 制作交互式图形,因此我需要让某些选定的椭圆元素在事件发生时显示特定颜色(如深红色)的实心轮廓。我想知道如何做到这一点。
谢谢!
svg - svg元素拉伸
我正在使用 SVG 创建一个简单的绘图应用程序,用户可以在其中绘制圆形、矩形等,并根据需要进行放大和缩小。
我的主要问题是拉伸。我想创建一个拉伸按钮,它将所有 SVG 元素拉伸到浏览器的大小而不会扭曲它。
在我的设计中,页眉占用 50 像素,页脚占用 25 像素。所以实际的绘图空间是减去那个。
我还没有编写任何代码,bbox 和 viewbox 让我无处可去。