Javascript 如何使RaphaelJS图形与流体布局一起工作
由于IE8,我使用RaphaelJS生成一个图形,在所有现代浏览器(如Chrome、FireFox、Safari、IE9+)中都是Javascript 如何使RaphaelJS图形与流体布局一起工作,javascript,svg,raphael,fluid-layout,vml,Javascript,Svg,Raphael,Fluid Layout,Vml,由于IE8,我使用RaphaelJS生成一个图形,在所有现代浏览器(如Chrome、FireFox、Safari、IE9+)中都是SVG,但在IE8中却是VML 此图形嵌入在中,它是使用流体布局的页面的一部分。使用纯SVG,我可以使用viewBox和preserveSpectratio等属性使其工作,也就是说,图形(以及其中的元素)随着浏览器窗口的大小而上下缩放 但是它如何处理VML案例呢?我是否需要在窗口调整大小事件时通过重新绘制整个图形来滚动我自己的图形?RaphaelJS有什么方法可以简化
SVG
,但在IE8中却是VML
此图形嵌入在
中,它是使用流体布局的页面的一部分。使用纯SVG
,我可以使用viewBox
和preserveSpectratio
等属性使其工作,也就是说,图形(以及其中的元素)随着浏览器窗口的大小而上下缩放
但是它如何处理VML
案例呢?我是否需要在窗口调整大小事件时通过重新绘制整个图形来滚动我自己的图形?RaphaelJS有什么方法可以简化这个案例吗?应该为VML和SVG AFAIK处理这个问题
也就是说,我不确定VML处理流畅布局的效果如何。对于所有好的浏览器,您可以设置宽度/高度的百分比,这将使图像自动“流畅”(它将使用DIV容器调整大小),对于IE7-8,您应该使用自定义调整大小功能,这将手动执行
paper.setViewBox()
:
if($.browser.msie && $.browser.version < 9){
R = Raphael('divID', 640, 480);
$(window).on('resize', yourCustomfluidResizeFunction);
}else{
R = Raphael('divID', '100%', '100%');
}
if($.browser.msie&&$.browser.version<9){
R=拉斐尔('divID',640480);
$(窗口)。在('resize',yourCustomfluidResizeFunction');
}否则{
R=Raphael('divID','100%','100%');
}
我什么时候调用setViewBox
?我尝试在创建图形后调用它,但是当我调整浏览器窗口的大小时,什么也没有发生-图形保持不变(注意,我在Chrome中使用的是SVG
图形)。