我尝试使用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的新手,但是我的老板在我脖子上呼吸,让它工作。拉斐尔地图下面的图像显示了我的目标。我觉得我很亲近,也许我正在调用错误的对象来调整大小?
帮助我欧比万!
谢谢!
答案 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