草庐IT

svg_filedata_cache

全部标签

javascript - 转换后的 SVG 元素上的 getBoundingClientRect() 应该返回什么?

今天我测试了当你使用getBoundingClientRect()时会发生什么在已旋转的SVG元素上。测试:http://phrogz.net/svg/getBoundingClientRect-on-rotated-elements.html结果是:Chrome、Safari、Opera和IE似乎计算元素的本地(未转换的)边界框,然后返回该边界框的客户端rect。这可能导致客户端矩形比看起来合适的大。另一方面,Firefox裁剪客户端矩形以适合元素本身。根据规范,哪种行为是正确的?为了它的值(value),我prefertheFirefoxbehavior,但(不了解规范)认为Fir

javascript - 以编程方式合并两个 svg 路径元素

我正在用SVG路径渲染map(使用jVectormap)。在某些情况下,一个区域必须与相邻区域合并。不幸的是,这两个区域没有相互接触,我必须进行插值以填充它们之间的空间。jVectormap使用非常简单的SVG路径,其中M设置绝对起点,l连接相对点。是否有任何SVG库涵盖此类操作? 最佳答案 我没试过这个,但你可以通过运行theconverteratjVectormap来绕过它使用以下参数:--buffer_distance=0--where="ISO='region_1'ORISO='region_2'"其中region_1和re

javascript - 矩阵变换 : Converting SVG path coordinates to Leaflet coordinate system

简短版本:如何将SVG路径添加到Leafletmap,以便在map坐标更改时(例如缩放更改或滑动时)路径会更新?长版:你好,我有一个地形image包含建筑轮廓。对图像进行地理校正后,我使用Photoshop将栅格数据转换为SVG.我知道描述SVG周边的边界框的地理坐标,并且知道SVG路径元素的内部坐标。我想知道现在将上面SVG的路径元素中描述的建筑物添加到Leafletmap的最佳方法。这是一个fiddle,它以红色显示SVG图像的边界框,以蓝色显示建筑物:http://jsfiddle.net/duhaime/4vL925Lj/如您所见,建筑物尚未根据边界框正确定向。我最初对齐建筑物

javascript - 使用 Raphael 操作 SVG

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

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中的元素是。 最佳答案