为什么Raphael.JS会创建尺寸为1000x1000的纸张?

时间:2011-01-11 01:48:13

标签: javascript internet-explorer raphael

我使用raphael.js进行了演示。它的代码非常简单,但是当在Internet Explorer中查看时(少于版本9),我得到一张1000px×1000px的Raphael画布,我无法弄清楚原因。我正在使用拉斐尔的1.5.2版本。代码如下:

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Raphael Test</title>
    <link rel="stylesheet" type="text/css" href="test.css">
    <link href="../shared/img/favicon.png" rel="shortcut icon">
  </head>
  <body>
    <div id="graph"></div>
    <script src="../shared/js/raphael/raphael-min.js" type="text/javascript"> </script>
    <script src="test.js" type="text/javascript"> </script>
  </body>
</html>

CSS

/* Graph */
#graph { padding: 5px; width: 477px; height: 299; }

JS

var holder = document.getElementById('graph')
  , width = holder.scrollWidth
  , height = Math.round(width * 0.5625) + 25
  , p = Raphael(10, 50, width, height)
  , c = p.circle(p.width - 50, p.height - 50, 50);
alert(p.width + ' & ' + p.height);

我在Raphael's Google group中发现了一个有同样问题但没有解决方案的讨论。

1 个答案:

答案 0 :(得分:1)

我有同样的问题并使用

var width = paper.canvas.clientWidth ? paper.canvas.clientWidth : paper.width;
var height = paper.canvas.clientHeight ? paper.canvas.clientHeight : paper.height;

而不是paper.width和paper.height解决了它比版本9以及所有其他浏览器更早。