如何在点击事件上在SVG上绘制矩形?

时间:2015-02-06 10:01:30

标签: javascript svg raphael

我在我的应用程序中使用raphael js。在这里,我需要在raphael纸上点击一个小矩形。我需要使用一条线连接这些矩形。任何人都可以做这个的DEMO。我正在添加样本DEMO。请更新此内容。

我的演示: HERE

var paper = Raphael("editor", 635,500),
        canvas= document.getElementById('editor').style.backgroundColor='gray';

现在我需要在点击raphael纸上绘制小方块,然后将它们与一条线连接起来。

1 个答案:

答案 0 :(得分:3)

这应该可以解决问题; http://jsfiddle.net/9dsgcv1c/1/

var paper = Raphael("editor", 635,500),
canvas= document.getElementById('editor').style.backgroundColor='gray';

var offsetx = paper.canvas.offsetLeft;
var offsety = paper.canvas.offsetTop;

var prevRect = null;
var rWidth = 50;

paper.canvas.onmousedown = function(e) {
    var posX = e.pageX-offsetx;
    var posY = e.pageY-offsety;

    var rectX = posX - (rWidth/2)
    var rectY = posY - (rWidth/2)
    var c = paper.rect(rectX, rectY, rWidth, rWidth).attr({fill:"#fff"});

    if(prevRect) {
        var p = "M"+prevRect.x +" " +prevRect.y +"L"+posX+" "+posY
        var line = paper.path(p);
    }

    prevRect = {x: posX, y:posY};
}

-

<b>Click on CAMVAS to draw rectangle</b>
<div  id="editor"></div>