2013-07-29 119 views
0

所以我让我的网络应用程序响应时遇到麻烦。我设法使SVG在宽度调整时适应,但我遇到了高度问题。SVG调整窗口大小的高度调整大小,也中心到父

我已经拿出了高度调整最佳的解决方案是下面的js/jQuery代码:

 function updateWindow(){ 
      var y = (($(window).height())); 
      svgMap.style.height=y; 
     } 
     updateWindow(); 
     window.onresize = updateWindow; 

这样做是设置SVG视口的高度等于该窗口。这个作品从某种意义上说,它将SVG与浏览器窗口的高度集中在一起。不太好,它在移动设备上出现了问题,并且几乎增加了一个奇怪的顶级利润。这也使得SVG稍微小一些,除非我将“y”乘以大于1的值。但是,这样做会增加利润率差距。如何麻烦..

您可以查看这里的演示: http://zadias.me/SVG/Harrison%20Wilson/HarrisonWils.html

和演示W/O高度中心的变化在这里:http://zadias.me/SVG/Harrison%20Wilson/HarrisonWils%20-%20Copy.html

总之事情了,一个人如何去为中心的SVG在<object>标记内,水平和垂直。另外,我希望它能让SVG映射本身填充包装容器。

任何帮助表示赞赏,谢谢。

编辑:所以我已经放弃了试图让它正好契合家长的高度..相反,我只是写了一些JS如果高度太小,这将将提示用户发出警告导致页面溢出。我也做到了这一点,因为它可以通过向每个页面添加内联CSS以及媒体查询来完美设计。

回答

0

如果您的SVG的宽度和高度设置为100%,即:

<svg width="100%" height=="100%">... 

那么它应该只是调整了SVG是容器内部的问题。 “xMidYMid meet”的preserveAspectRatio设置应该垂直居中。

+0

仍然没有垂直缩放..我甚至尝试在源代码中的''添加'width =“100%”height =“100%”',没有雪茄。 – user2533212

+0

你想垂直缩放吗?你的意思是你想要它水平交叉*和*垂直?如果是这种情况,请使用'preserveAspectRatio =“none”'。如果你想要它,以便它扩展到填充整个容器(意味着一些svg溢出它并被剪切掉),使用'preserveAspectRatio =“xMidYMid slice”'。 –

+0

我希望它适合窗户,并完全被用户看到。正如你所说,我不想要溢出/剪切。我试过'preserveAspectRatio =“none”',没有工作。 – user2533212