拉斐尔无法扩展多条路径?

时间:2011-11-17 17:32:31

标签: javascript html canvas svg raphael

我尝试使用SO上的当前热门问题:Scaling multiple paths with raphael

......没有太多运气。我正在通过拉斐尔建造美国地图,虽然地图非常好,但我需要它的大小可能是目前的30%。

我能够将初始Raphael画布上的attr更改为“.5”,但是只调整每个单独的路径而不是整个画布。我也尝试使用javascript来缩放包含画布的div无济于事。

路径:实际页面: http://praxxgray.com/am/rafe2/mapTest.html

的javascript: http://praxxgray.com/am/rafe2/js/initMap.js

我是Raphael的新手,但是我的老板在我脖子上呼吸,让它工作。拉斐尔地图下面的图像显示了我的目标。我觉得我很亲近,也许我正在调用错误的对象来调整大小?

帮助我欧比万!

谢谢!

3 个答案:

答案 0 :(得分:1)

将参数viewBox和preserveAspectRatio添加到SVG元素。我尝试添加这些参数,只是为了看看我是否设法改变了大小,我做了。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
   viewBox="0 0 2500 3100" preserveAspectRatio="none">

有关viewBox属性here的更多信息。

答案 1 :(得分:1)

不知道这是否有帮助,而且它有点偏离袖口,但你是否尝试将地图粘贴在自己的raphael实例中然后使用Paper.setViewBox (...)调整大小?

 var map = Raphael(100,100,800,500);
 //
 // draw my very big map, bigger than 800x500
 //
 map.setViewBox(100,100,800,500,true); 
 // doesn't change the size of the raphael instance, but will force the graphics to fit
 // inside it.

setViewBox可让您更改视口。从链接 - &#34;设置纸张的视图框。实际上,它可以通过指定新的边界来缩放和平移整个纸张表面。

这可能是获得你想要的东西的快捷方式。它只是拉斐尔2 :(

工作,但我还没有真正测试过。正如我所说,它有点偏离袖口......)

答案 2 :(得分:0)

我想出了这个jsfiddle。我在我自己的多个地区的地图中使用它。适用于IE6,8&amp; 9

http://jsfiddle.net/chrisloughnane/EUwRq/