0

我有一个问题:

path.drag(onmove, onstart, onend)

特别是,我定义了一个这样的函数:

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

}

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

谢谢

4

2 回答 2

1

返回的坐标可能是相对于窗口的。但是,您可以使用诸如 http://www.quirksmode.org/js/findpos.html中描述的函数来计算论文与 document.body 的偏移量

然后只需将 onmove 坐标与您的纸张坐标进行比较。

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

于 2013-10-14T12:24:13.437 回答
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
}
于 2013-10-14T16:01:28.820 回答