问题标签 [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 回答
1507 浏览

internet-explorer-8 - 编辑元素的 attr() 和 text()(填充、描边、粗细)时,RaphaelJS 在 IE8 中大幅减速

我正在使用 RaphaelJS 调试 IE8 中的一些性能问题。我们在 raphael 中从大约 1000 个元素和文本节点构建图表,特别是一个图表在渲染时给我们带来了问题。在 IE9 中需要 2-7 秒,具体取决于机器来渲染,而在 IE8 中需要 1 分钟以上。

您可以在此处查看相关网站。这是第三张图(点击它)。

本质上,我们为每个数据点创建元素并将它们绘制在拉斐尔画布上。

我使用了 IE Developer Tools 分析器并确定它是setFillAndStroke()从两者调用的函数,attr()以及text()当我们更改元素的填充、描边、样式和其他一些设置时。getBoundingRect()函数是setFillAndStroke()罪魁祸首。

这是分析器输出的屏幕截图

在我的研究中,我遇到过一些人对 IE8 有问题attr()text()例如,

所以有几个问题:

  1. 您可以为 Raphael 元素设置“默认”填充和描边,以便使用该填充和描边创建它们吗?这应该删除对getClientBoundingRect(). 我试过在文档中寻找这样的功能,但没有运气。
  2. 这是我们可以在不改变图表外观的情况下解决的问题吗?
  3. 如果这是我们可以通过代码完成的事情,是否可以在不修改 RaphaelJS 的情况下这样做?
  4. 还有其他想法吗?

在旧版本的 Raphael 中似乎有人遇到了类似的问题,显然已在 2.0.0 中修复,但我们使用的是 2.0.2 版本(测试在 2.1.0 中也有同样的问题)。

这是github 上的问题报告

0 投票
2 回答
343 浏览

javascript - jquery.clone() 元素的属性

我创建 vml 元素 v:shape,添加样式和属性,然后附加它。

我想将相同的形状附加到另一个地方

但它只克隆样式

我该怎么办?请帮助我)
[编辑] 感谢您的回答)这对我来说很奇怪......我注意到当我将它附加到元素时它可以工作如果var element = document.createElement("p");但我得到我的元素$(selector).each(function(index, element) {即使我将它附加到正文它也没有工作(

0 投票
1 回答
1434 浏览

javascript - Raphaël.js:如何缩放圆形的填充图像以适合圆形?

我正在尝试使用 Raphael 的 VML 功能来生成带有图像的圆圈(修复了缺少边框半径的 IE8)。

我的问题是,如果我使用

而且我的图像大于仅部分显示图像的圆圈,我找不到将图像缩小到圆圈直径的方法。

我怎样才能做到这一点?

0 投票
1 回答
1744 浏览

internet-explorer-8 - raphael.js IE8透明描边

我创建了一个阳光明媚的天空,两个物体遵循随机透明路径raphaël.js

http://jsfiddle.net/vcX4U/1/

这在所有适当的浏览器中都可以正常工作: 好天空

只有 IE8 - 由于 WinXP 用户,我必须支持 - 显示黑色路径和上方太阳光线上的翻转渐变(这不是关键):

坏天空

我很确定这与raphaël.js将 VML 用于 IE6-8 和将 SVG 用于所有其他浏览器有关。但这可能是解释而不是解决方案...

想法?

编辑@amadan:感谢您的努力。但这会使飞机“坠毁”:

在此处输入图像描述

0 投票
3 回答
8894 浏览

internet-explorer - IE9、IE8、SVG、VML 和文档类型

我正在我的 ASP.NET Web 应用程序中绘制形状。在 IE9 和其他浏览器中,我使用 SVG 进行操作,而且效果很好。在 IE8 及以下版本中,我使用的是 VML。我发现 IE8 在 IE8 标准模式下(不使用兼容性视图)时根本不显示 VML。

我的文档类型设置为<!DOCTYPE html>. 如果我完全取消 doctype,IE8 会进入 quirks 模式并且工作正常,但 IE9 然后会进入quirks 模式(而不是 IE9 标准)并且不显示 SVG。

<svg>这发生在测试页面上,因此除了包含包含元素及其子元素或 VML 元素的 div 的表单之外没有任何内容。

这里发生了什么?似乎我不应该为不同的浏览器更改文档类型,并且 Stack Exchange 用户页面上的信誉图似乎以相同的方式工作(IE8 及以下版本的 VML,其他所有人的 SVG,HTML5 文档类型)......

0 投票
1 回答
3378 浏览

javascript - 如何在 raphael 中删除我可能想在两秒钟后重绘的路径

我在下面粘贴的代码可以很好地使用定义的时间间隔逐步绘制一条线。(它使用了一些此处未显示的变量)。我遇到的问题是,如果我在 raphael 中使用 remove() 函数删除路径对象 myPath1 或 2,它不想绘制下一个或重绘自身。它似乎打破了路径方法。

我该怎么做?我希望能够重新绘制/重新激活路径,但这需要它从零点重新开始,所以我想我也可以删除它。

0 投票
1 回答
1097 浏览

masking - vml 剪贴蒙版

我正在尝试在 VML 中创建一个与clip-pathSVG 对应的剪贴蒙版?那可能吗?

基于大量但相当有限的示例,我尝试绘制形状:

然后使用vmlframe

形状(三角形)的绘制按预期工作,但我找不到使用vmlframe掩盖它的方法。这是实现掩蔽的正确方法吗?

请忽略所有奇怪的自定义属性,因为大多数 VML 代码是通过 3rd 方库生成的。

提前致谢!

0 投票
1 回答
2981 浏览

svg - 有 SVG 到 VML 的转换工具吗?离线或在线。(不是在飞行中)

我一直在寻找将 SVG 文件转换为 Internet Explorer 可读的 VML 的工具。

我找到了几个“即时”解决方案,但这些都是不必要的,因为我们只希望在一些简单、不变但可缩放的图形上使用矢量图形。

是否有任何离线或在线工具可以接受 SVG 文件并输出 VML 代码?

亲切的问候。

0 投票
1 回答
1245 浏览

javascript - 在 IE8 中打印 VML

这是一个非常简单的 VML 示例,它在所有版本的 IE 上都可以正常显示。它还可以在除 IE8 之外的所有 IE 版本上打印。我知道可以让 IE8 打印 VML,但找不到我应该怎么做。感谢您的任何提示。

0 投票
1 回答
198 浏览

raphael - VML鼠标事件对象的结构是什么?

我想知道 VML 鼠标事件对象的结构(属性和方法)。

我正在使用 Raphael,我想知道元素悬停时的鼠标坐标。在 Firefox 和 Chrome 上,event.pageX并且event.pageY正在运行,但在 IE8 中不可用。

这是JSFiddle