草庐IT

javascript - 使用 Raphael 操作 SVG

是否可以使用Raphael来操作嵌入的SVG图像?我过去使用Raphael来绘制形状,但实际上并没有看到它被用来操纵现有的SVG图像。如果没有,是否有其他方法可以让我轻松地更改颜色、添加事件等到嵌入式SVG图像的多边形? 最佳答案 根据我阅读Raphael.js源代码的经验,我必须同意以前的帖子。我能想到的替换或修改SVG的唯一方法是替换/修改标记/DOM本身。我想在我的回答中添加的只是对为什么会这样的简短、一般性的解释。Raphael被设计为SVG/VML生成器。也就是说,Raphael创建JavaScript对象并在创建对象时将

javascript - d3.format 中的可变精度

我将d3.format("s")与d3.svg.axis.tickFormat一起使用,以使用SI单位(来自国际单位制)很好地格式化刻度标签。它在大多数情况下工作得很好,除了遇到舍入错误并返回大量小数位的某些值(例如1400,1400*0.001=1.4000000000000001)。为了解决这个问题,我可以指定一个精度,例如d3.format(".2s")但这会在1更好的情况下强制使用2位有效数字。例如,如果我有刻度[5000、10000、15000],我现在会看到[5.0k、10k、15k]。最初,当我根本没有指定精度时,我得到了[5k、10k、15k]。我想知道是否可以指定最大

javascript - 类似谷歌的股票图表/折线图

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我正在寻找类似于GoogleChart(example)的特定样式的Javascript或SVG图表库我已经搜索了一段时间,但找不到任何与这种风格非常相似的东西,我很好奇是否有人可以指出正确的方向以实现类似的最终结果。我查看了GoogleVisualizationAPI并尝试制作LineChartinJSFiddle但似乎无法复制那种设计风格。有什么建议吗?SeeEx

javascript - 计算 SVG 圆弧的中心

我有以下信息:半径X(rx)半径Y(ry)x1y1x2y2SVG规范允许您通过指定圆弧的半径、起点和终点来定义圆弧。还有其他选项,例如large-arc-flag和sweep-flag,它们有助于定义您希望起点如何到达终点。Moredetailshere.我不擅长数学,所以理解allofthis几乎不可能。我想我正在寻找一个简单的等式,让我知道centerX和centerY值给定SVG的arc命令接受的所有参数。感谢任何帮助。我搜索了stackoverflow,但似乎没有一个答案能用简单的英语解释解决方案。 最佳答案 来自W3CSV

javascript - Snap.svg 无法使用 jQuery 动态(并成功)找到附加的 SVG 元素

Snap.svg在这种情况下不起作用:$('body').append($('').attr('id','test'));console.log($('#test').length);//1varsvg=Snap('#test');svg.circle(100,100,50);//UncaughtTypeError:Object[objectObject]hasnomethod'circle'...但是当元素已经在HTML中时有效:SVG元素在HTML中成功,但无法通过Snap.svg找到。我在第一个示例中做错了吗?还是错误? 最佳答案

javascript - SVG 动画在 IE & Edge 上出现 "out of bounds"

我遇到的问题似乎只影响IE和Edge(已在IE9-11和Edge12-13上测试)。我正在使用Snap.svg为SVG笔画偏移设置动画,这似乎运行良好,但在某些点笔画似乎“越界”并消失。这很奇怪,因为viewBox设置为明显适合线条(它是直接从Illustrator导出的,带有适合整条线条的画板)。您可以在此处查看实际效果:http://codepen.io/ndimatteo/full/zqLBVW///SSSSSNAKEvarsnake=Snap('#snake-previewsvg');varbodyPath=snake.select('#snake-body');varbody

javascript - SVG 和 RevealJS 中的鼠标位置

我正在使用RevealJS创建一个演示文稿,并希望合并一些使用D3创建的交互式SVG可视化效果。之前我已经毫无困难地完成了很多次,但这次我遇到了一些困难。经过一些调试后,我将问题追溯到以下几点:由于某种原因,当整个内容都包含在RevealJS中时,鼠标相对于SVG的位置没有正确报告。我的原始代码版本使用标准D3技术来获取鼠标位置。不过,为了简化和隔离问题,我取消了D3,现在使用vanillaJavascript获取鼠标位置,详见thisStackOverflowanswer。.我的代码(作为堆栈片段实现)如下所示:varinfo=document.getElementById("inf

javascript - SVG 文本元素速度

我正在构建一个严重依赖svg的网络应用程序。作为引用,我正在使用raphaeljs库来处理所有这些。在这种特殊情况下,我实现了一些模仿滚动条并在屏幕上移动一堆svg功能(约500个元素)的东西。这些功能的一部分是(~100)个元素。其他元素包括,和元素。因此,我注意到我的应用程序在我的笔记本电脑上并不是非常活泼,而且由于速度原因在ipad上处理起来非常烦人。但是,只要在滚动过程中删除或忽略文本元素,它就会立即达到不错的速度。我尝试做一些速度测试(非常粗略的测试,使用newDate().getTime())并发现移动所有元素需要大约10毫秒,除了。元素,但是当时需要~120毫秒包括元素。

javascript - 调整 d3/dagre-d3 svg 的大小以显示所有内容

我正在尝试使用dagre-d3创建DAG.这些DAG的数据来自数据库,每个DAG都不同,因此,在将所有节点和边添加到图形之前,我不知道要给出包含svg的宽度/高度。所以理想情况下我会调用类似d3.select("#svg1").resize_to_match_contents()的东西添加所有节点和边缘以确保所有节点都可见并且svg不太大之后。当然没有这个功能,我也不知道怎么实现。我知道我可以打电话d3.select("#svg1").attr("height","10")设置高度,但不知道如何检索/计算的高度SVG中的元素是。 最佳答案

javascript - 在多个点之间绘制扇形多边形

我正在尝试在多个点之间使用SVG绘制扇形路径,就像为矩形绘制一样here但在多个点之间。期望两个或更多两个或更多选择的点由扇形线连接。但是我面临的问题是,扇贝的大小不对称或随机。-我解决了这个问题点击后多点扇贝方向和上下。如下图所示。即使在html5canvas上下文中给出答案,我也完全可以。我会做出调整。我缺少一些额外的计算,但无法弄清楚是什么。请在结果页中多次点击查看当前绘制的扇贝varstrokeWidth=3;functiondistance(x1,y1,x2,y2){returnMath.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}funct