问题标签 [vml]

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 投票
1 回答
4198 浏览

javascript - 获取一组 Raphael 对象的 BBox?

获得几个 Raphael 对象作为一个整体的边界框的最佳方法是什么?

我可以把它们都放在一个set并打电话mySet.getBBox()吗?

还是我需要遍历它们,获取bbox每一个并计算整体高度和宽度?

(另外,我不能直接使用 SVG - 我需要 VML 支持。)

0 投票
2 回答
519 浏览

html - 垂直重复 VML 形状

我已经设法使用 VML 为 td 显示背景图像,但我希望它垂直重复。我找到的任何示例都仅适用于一张图片。谁能想到我可以做到这一点?我把我的示例页面放在下面的小提琴中。

http://jsfiddle.net/TSeBy/

0 投票
3 回答
2039 浏览

html - 复杂页面的 SVG 内存占用

我有一个需要大量小条形图(迷你图大小)的设计。一个典型的页面很容易有 60 多个图表,每个图表显示 100 多个数据点。诸如此类的浏览器内存占用会令人望而却步吗?我也可以使用输出 png 的服务器端渲染器,但似乎可以使用 SVG 完成更多工作。

其他注意事项: SVG 可能会被 Rapheal.js 转换为 IE 的 VML。所以那里的内存占用也需要合理。

感谢您提供任何帮助或找到好的答案的方法。

0 投票
1 回答
322 浏览

javascript - 应用 KB2482017 后的 VML 问题

到目前为止,我在使用flot呈现的页面上有一个运行良好的交互式图表。在推送了一些补丁后,它在 IE7 中停止了渲染。经过反复试验,我发现无论是 flot 还是任何其他 js 绘图库(使用 excanvas 或 IE 回退的某些衍生工具)都不会在 Windows XP 的 IE7 或 IE8 上使用 KB2482017 渲染。Windows 7,带有补丁的IE8不受影响。我还没有测试过Vista。

经过一番挖掘,似乎甚至基本的 VML 在 XP 上都被补丁破坏了。Microsoft 自己的 VML 示例无法呈现。

有没有其他人看到过这种行为,如果有,知道解决方法吗?

这是我在一台装有 XP、IE7 和应用了补丁的机器上的信誉图的屏幕截图。 在此处输入图像描述

0 投票
1 回答
858 浏览

php - 将 VML 转换为 PDF

有没有办法使用 PHP 或 JavaScript 将 VML(IE 浏览器上的 SVG)格式转换为 PDF 格式。

0 投票
2 回答
1226 浏览

javascript - 拉斐尔累积与绝对缩放/旋转/平移?

我正在尝试用 Javascript 绘制交互式地图,使用 Raphael 来完成繁重的工作。

地图背景是一个相当复杂的东西,包含网格、地图元素、标签等。在此之上,我将绘制用户实际使用的东西。因为背景很复杂,我不想每帧都重新渲染。因此,在绘制之后,我想重用这些绘图元素,只需在用户平移、缩放等时更改背景的平移、旋转、缩放等。

不幸的是,我对 Raphael 的转换原语感到相当困惑:它们的行为不像我预期的那样。如果我调用scale(),缩放似乎适用于绘图元素的原始大小;但是translate()是累积的,所以它适用于之前的翻译。rotate()可以是任何一个,因为它有一个我可以设置的选项......

可以做绝对翻译吗?也就是说,能够指定我的对象(通常是路径)的新中心的绝对坐标?如果做不到这一点,是否会跟踪旧位置,以便在我想将其移动到新位置时应用增量,这是一种合理的做法吗?

或者我会更好地每帧重新渲染整个东西吗?(我看到 Raphael 不擅长转换复杂绘图的建议,因为其中大部分是在 Javascript 中完成的;查看正在生成的 SVG,我发现转换似乎正在返回到路径数据中,这将承担这一点...)

(顺便说一句,FWIW 我正在使用 GWT Raphael 界面来完成这一切。)

0 投票
1 回答
3760 浏览

html - 在 svg/vml 或画布形状周围放置阴影

在使用 svg(兼容 IE7/8 的 vml)创建的形状下或使用 html5 的画布创建的形状下创建投影是否容易?我正在寻找一个带有阴影的箭头。

0 投票
1 回答
2130 浏览

svg - 如何为 Chrome / Firefox vs IE 7 和 8 制作 RaphaelJS 垂直对齐文本?

我认为 RaphaelJS 在 Chrome / Firefox 和 IE 7 和 8 中应该是一样的?

示例位于

http://jsfiddle.net/8UPhS/1/

文本在 Chrome 和 Firefox 上垂直居中,但在 IE 7 和 8 上,文本的基线是居中的(所以它比 FF 高几个像素)......有没有办法让它们的行为都一样?

(最好不要使用浏览器检测并将 IE 7 和 8 的文本调整为低几个像素,因为这不是一个干净的解决方案)

(在 IE 9 上,由于某种原因,图像根本没有显示,即使使用开发人员工具将 Compat 模式更改为 IE 7 或 8 ......但如果我在 IE 9 上使用链接raphael.js相同的单独页面进行操作的网站index.html,然后我得到了最糟糕的情况:有时我得到一种行为,有时我得到另一种行为,随机......它几乎看起来像是一个竞争条件)

(对于 IE 9,可以使用此页面:

http://try-raphael-text.heroku.com
http://try-raphael-text.heroku.com/raphael20.html

第二个链接是在 GitHub 的 Raphael 2.0 分支上使用 Raphael 2.0

2.0 版本实际上可以在 IE 7 上进行垂直对齐,但是在 IE 8 上,没有显示任何文本...使用这个简单的案例在 IE 9 上运行良好...但是在我们的真实页面上,它能够使 IE 9 崩溃有时)

0 投票
1 回答
1927 浏览

svg - 似乎 SVG 可以轻松绘制弧线——VML 可以在 IE 7 及更高版本上完成吗?

以下可以使用 SVG 轻松绘制两条弧线,并且适用于 Firefox 或 Chrome:

示例页面:http: //jsfiddle.net/j8aN9/

VML 也可以轻松做到这一点,以便它甚至可以在 IE 7 及更高版本上运行吗?(你能举一个像上面这样画弧线的例子吗?)

0 投票
12 回答
155865 浏览

svg - 使用 SVG 的圆弧路径绘制圆

简短的问题:使用 SVG 路径,我们可以绘制 99.99% 的圆并显示,但是当它是圆的 99.99999999% 时,则不会显示圆。如何修复?

下面的SVG路径可以画出99.99%的圆:(在http://jsfiddle.net/DFhUF/1381/上试试看是看到4个圆弧还是只看到2个圆弧,但是注意如果是IE的话是用 VML 渲染,而不是 SVG,但有类似的问题)

但是当它是一个圆的 99.99999999% 时,什么都不会显示?

这与 100% 的圆相同(它仍然是一个圆弧,不是吗,只是一个非常完整的圆弧)

这怎么能解决?原因是我使用一个函数来绘制弧的百分比,如果我需要“特殊情况”一个 99.9999% 或 100% 的弧来使用圆函数,那就有点傻了。

同样,在 jsfiddle 上使用 RaphaelJS 的测试用例位于http://jsfiddle.net/DFhUF/1381/
(如果它是 IE 8 上的 VML,则即使第二个圆圈也不会显示......你必须将其更改为0.01)


更新:

这是因为我正在为我们的系统中的分数绘制弧线,所以 3.3 分得到 1/3 的圆。0.5 得到半个圆,9.9 分得到 99% 的圆。但是,如果我们的系统中有 9.99 的分数怎么办?我是否必须检查它是否接近圆的 99.999%,并相应地使用arc函数或circle函数?那么9.9987的分数呢?使用哪一个?需要知道什么样的分数会映射到“太完整的圆”并切换到圆函数,而当它是圆的“某个 99.9%”或 9.9987 分数时,再使用弧函数,这很可笑.