我怎样才能发起Raphael.js?

时间:2014-04-14 21:57:49

标签: raphael

        <script type="text/javascript" src="raphael.js"></script>
    <script>
        var paper = new Raphael("holder", 320, 200);
        function testPaper(){
            var width10 = paper.width * 0.1;
            var height10 = paper.height * 0.1;
            var width80 = paper.width * 0.8;
            var height80 = paper.height * 0.8
            var c = paper.rect( width10, height10, width80, height80, Math.min( width10, height10 ) );
    }
    </script>
</head>
<body onload = "testPaper()">
    <div id="holder"></div>
</body>

上述代码有什么问题?我一直试图让Raphael工作超过一个小时了它总是抱怨:

  

未捕获的TypeError:无法读取未定义的raphael.js属性'x':11

2 个答案:

答案 0 :(得分:4)

使用Raphael的脚本可能在&#34; holder&#34;之前运行。元素已创建。

要么在ready/onload事件中创建Raphael,要么像这样简单地排列HTML:

<body>
    <div id="holder"></div> <!-- also use correct closing tag -->
    <script src="raphael.js"></script>
    <script>
        var paper = new Raphael("holder", 320, 200);
        // ..
    </script>
</body>

答案 1 :(得分:0)

我在Angular中使用draw2d库时遇到了同样的问题。我无法初始化画布。值得注意的是,该元素必须与已初始化的画布具有相同的名称。