我有一个使用raphael.js的演示。它的代码非常简单,但是在Internet Explorer(9版以下)中查看时,我得到的Raphael画布为1000px x 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中发现了一个具有相同问题但没有解决方案的讨论。

最佳答案

我有同样的问题,并使用

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和所有其他浏览器。

关于javascript - 为什么Raphael.JS创建尺寸为1000x1000的纸张?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4653429/

10-12 16:56