草庐IT

javascript - 如何确定 SVG 文本框宽度,或在 'x' 个字符后强制换行?

我正在使用Raphael库创建一个SVG文本框,并用从XML文档中提取的动态字符串填充它。有时,这个字符串比我放置文本框的Canvas长,所以我需要限制框的宽度,这本身会强制换行(我找不到任何证据表明这是可能的)或确保在一定数量的字符后插入'\n'换行符。那么(1)这是最好的选择吗?(2)我该怎么做? 最佳答案 文本换行没有属性,但您可以使用一个简单的技巧。一次向文本对象添加一个单词,当它变得太宽时,添加一个换行符。您可以使用getBBox()函数来确定宽度。基本上,您模拟的是老式打字机。下面是一些可以为您执行此操作的代码示例。您可

html - 如何按视口(viewport)的百分比平移 SVG 组

我有一个svg那是在(组),我想缩放它,然后按视口(viewport)的百分比转换它。svg中的大多数内容都允许通过数量可笑的选项来指定单位;例如px,em,%,ex,pt,pc,...然而,翻译中指定的数字似乎只是像素。问题是,如果我必须返回并重新计算翻译的像素值,那么我的svg将变得依赖于分辨率。然后我,你和每个人都会陷入一个悖论。你可以看出我为什么有点担心。http://jsbin.com/ubeqot/1/edit 最佳答案 贴上内部元素元素并将带有百分比值的x和y属性添加到内部元素来翻译它。如果您希望首先应用比例,您可以将

html - 如何限制或剪辑 SVG 中的文本?

我在SVG中做了一个表格,我想用数据动态填充它。这意味着我不知道文本占用了多少空间,我想剪裁或隐藏重叠的文本。我怎样才能在SVG中做到这一点?我的带有SVG的HTML文档如下所示:Orange12Pear7Banana9Pomegranate2这将呈现为:有什么方法可以剪切我的SVG-“表格”中的文本?已实现的解决方案来自Erik的回答:OrangePearBananaPomegranate12792 最佳答案 您可以使用clip-path剪成你想要的任何形状,参见例如masking-path-01来自svg测试套件。相关部分,定义

html - 在 SVG 文本元素中插入 HTML 代码

我有一个svg:text节点,我想在其中添加HTML代码。实际上,我的代码是:Hello!我想放这样的东西:Gmail当然,我希望链接有效,但是,它只是显示所有HTML。有什么想法吗? 最佳答案 为什么不使用SVG在这种情况下的元素?不过不要忘记href必须是xlink:href。例如Gmail仅SVG动画元素、描述性元素(或)、文本内容子元素(或)或SVG元素允许作为文本元素的子元素。 关于html-在SVG文本元素中插入HTML代码,我们在StackOverflow上找到一个类似的问

html - 将嵌入的 SVG 就地转换为 PNG

我从Docbook源代码生成HTML,同时对图像使用SVG(从MathML转换而来)。这对于某些可以解释SVG的浏览器来说效果很好,但对于其他浏览器则失败了。我真正想要的是添加一个后处理步骤,将SVG“就地”(在HTML中)转换为PNG。所以像这样:将无缝转换为:我会得到一个转换后的PNG。有什么东西可以做到这一点吗? 最佳答案 演示:http://phrogz.net/SVG/svg_to_png.xhtml创建img并将其src设置为您的SVG。创建HTML5Canvas并使用drawImage()将该图像绘制到您的Canvas

html - Css 悬停有时不适用于 svg 路径

我有一个带有路径的svg,我在它们上面有css悬停,但悬停有时有效,有时无效。可能是什么问题?Layer1和CSSpath{fill:none;stroke:black;}path:hover{fill:red;stroke:blue;}这是fiddle,只需将它们快速悬停即可。http://jsfiddle.net/gWXbn/ 最佳答案 没有填充,所以默认情况下内部不会捕捉鼠标事件,因此悬停不会对此使用react。改变pointer-events在这种情况下,所有人都会修复它:path{fill:none;stroke:blac

HTML 中的 SVG 中的 HTML

我有一个简单的SVG文件,在Firefox中可以正常查看-它的一些包装文本使用foreignObject包含一些HTML-文本包装在div中:Thequickbrownfoxjumpsoverthelazydog.Packmyboxwithfivedozenliquorjugs但是再多的花哨也无法使它作为HTML文档中包含的元素工作。div总是最终与文档中的其他div一起流动。这根本不可能,或者我在命名空间或其他方面犯了一些错误。但是任何人都可以将上述SVG包装在HTML文档中,并让它在给定位置(当然是相对于SVG或其容器)的给定宽度x高度的框中显示文本吗?我还没有在HTML中看到SV

html - 如何在主窗口中打开嵌入式 SVG 文件中的链接,而不是在单独的对象中

我有一个包含URL链接的SVG文件(由Graphviz生成)。我希望这些链接可以点击。首先我尝试了显示图像正常但链接不可点击。更改为对象:使链接可点击,但当用户点击它们时,新页面会在对象内打开。有什么方法可以让链接在主窗口中打开?这是使用firefox5.0,但如果您知道任何跨浏览器差异,我将不胜感激! 最佳答案 首先,如果您将SVG嵌入为,浏览器不会打开链接,也不会在中运行脚本,因为,好吧,你嵌入了一张图片,你的图片很可能会出现在中。,并且您不能将链接放在链接中。要在新标签页中打开链接,您可以使用target属性,如HTML或特定

html - AngularJS ng-href 和 svg xlink

我想要一些关于在angular中使用xml命名空间属性的信息。问题是当Angular解析了表达式时,angular附带了一些指令来处理写入属性,例如href和src(否则浏览器将尝试加载{{mymodel.myimage}}作为网址)https://github.com/angular/angular.js/blob/master/src/ng/directive/booleanAttrs.js#L329我面临的问题是我使用angular与D3一起输出svg,因为angular没有办法输出xlink:href我被卡住了。我创建了一个输出xlink:href的自定义指令app.direc

html - 除非是纯文本,否则 SVG foreignObject 内容不会显示

我正在尝试使用SVG绘图中的foreignObject标签输出HTML。我正在使用d3生成元素。只有当foreignObject标签内的内容是纯文本时,才会显示foreignObject标签内的HTML内容,否则它只会显示为空/空白。请参阅此jsfiddle以获取我的问题示例:http://jsfiddle.net/R9e3Y/29/检查元素时会显示foreignObject标签内的内容:test但在屏幕上不可见?如何让内容显示出来? 最佳答案 因为您使用的是d3,所以您需要告诉d3该div是一个htmldiv,而不是svg命名空间