拉斐尔拖放

时间:2013-10-14 11:21:35

标签: javascript mouseevent raphael

我遇到了问题:

path.drag(onmove, onstart, onend)

特别是,我已经定义了这样的函数:

function onmove(x,y)
{
   console.log(x,y);

}

我的问题是x和y与我的论文无关,我怎样才能得到正确的坐标? 我不能使用JQuery。

由于

2 个答案:

答案 0 :(得分:1)

返回的坐标可能与窗口有关。但是,您可以使用如下所述的函数计算纸张与document.body的偏移量 http://www.quirksmode.org/js/findpos.html

然后只需将上移坐标与纸张坐标进行比较。

如果您的页面允许滚动,则需要考虑到这一点。

答案 1 :(得分:1)

看看这个演示,它可以帮到你:

<强> http://jsfiddle.net/CHUrB/

move = function (dx, dy) 
{
   // Move main element
   var att = this.type == "ellipse" ? {cx: this.ox + dx, cy: this.oy + dy} : 
                                               {x: this.ox + dx, y: this.oy + dy};
   this.attr(att);

   // Move paired element
   att = this.pair.type == "ellipse" ? {cx: this.pair.ox + dx, cy: this.pair.oy + dy} : 
                                               {x: this.pair.ox + dx, y: this.pair.oy + dy};
   this.pair.attr(att);   

   // more on the jsfiddle site
}