比例raphael VML右/底差距

时间:2013-03-18 11:44:41

标签: javascript raphael vml

我正在使用scaleraphael http://www.shapevent.com/scaleraphael/,允许我的svg / VML在用户调整浏览器大小时更改大小(流畅的布局 - 我已将其缩放到与页面上的div相同的大小)。< / p>

它与SVG浏览器完美配合,虽然它在IE8 / 7/6(VML)中有效,但由于某些奇怪的原因,右边有差距。我认为它与VML组的coordsize有关,但这是一个猜测。

间隙仅出现在某些浏览器宽度(相距约40像素)处。例如浏览器宽度:1060,1104,1144,1186,1230。间隙大约为20像素,并且每个像素的宽度变化再次减小到0,直到浏览器宽度是序列中的下一个像素再次显示为20像素

如果我在IE中使用开发人员工具,我可以看到vml组确实包含了差距,但是我的论文内容没有填充它 - 因此我认为它与coordsize有关

只是想知道是否有其他人有同样的问题(如果不是你可能不会理解我的问题,因为它很难解释)

1 个答案:

答案 0 :(得分:1)

前段时间我创建了自己的剧本,让Raphael的画布“响应”。是的,我在IE7-8中也发现了一些让我疯狂的漏洞。但是我的差距是不变的。现在我的脚本运行正常。如果您需要简单的响应大小,那么您不需要插件:

var _browser = {};
_browser.ie = userAgent.indexOf("msie") > -1 ? {} : false;
if(_browser.ie)
    _browser.ie.old = (navigator.userAgent.match(/MSIE [6-8]/) !== null);


if(_browser.ie && _browser.ie.old){

    _data.R = Raphael('conainerID', _data.options.width, _data.options.height);

    $(window).on('resize', function(){
          var w = $('#containedID').width();
          var h = $('#containedID').height();
         _data.R.setSize(w,h);
    });

}else{
    _data.R = Raphael('conainerID', '100%', '100%');    
}

您需要为此创建一个流体容器。不要设定固定宽度;但您可以设置一些“最大宽度”来限制其缩放:

<div id="containerID" style="max-width: 1200px;"></div>