在raphael js中缩放/拖动矩形

时间:2012-06-18 22:32:13

标签: javascript raphael

我是javascript和raphaelJS的新手,对于我的凌乱代码很抱歉,但我需要完成下一个任务:我需要绘制一个矩形并设置拖放和调整大小的方法。这种方式必须适用于平板电脑。我想在底部和右侧绘制2个小圆圈并用它们调整这个矩形的大小,但我猜测数学问题,因为下一个代码有一些问题:http://jsfiddle.net/x5zHp/(只有一个圆圈)< / p>

当我拖动矩形时,您可以看到鼠标和矩形不会同时移动,鼠标箭头会滑出。

请指出我的错误,也许还有一些最好的代码解决方案,我将不胜感激。 我发现了一个名为自由变换的插件,但我想自己做这个任务,因为最终我需要用它来做一些事情并且很难使用这个插件(比如我会改变圆圈的大小)或制作隐形圆圈,因为它必须能够轻松地在平板电脑上工作。原因是很难用手指抓住平板电脑上的圆圈) 感谢您提前和抱歉我的英语

更新

最后http://jsfiddle.net/y5Jag/7/我明白了。我还添加了一个不可见的圆圈,因此很容易捕捉到可见的圆圈(实际上我会在平板电脑中使用它) 我唯一不喜欢的是代码。这太乱了:

this.ox = this.attr('cx');
this.oy = this.attr('cy');
this.rox = Spectrum.resizer.attr('cx');
this.roy = Spectrum.resizer.attr('cy');
this.rwidth = Spectrum.rect.attr('width');
this.rheight = Spectrum.rect.attr('height');

任何建议如何美化这个...

1 个答案:

答案 0 :(得分:1)

如果我正确地理解了你的问题,你几乎就在那里,你需要将距离乘以2,因为正方形在两边缩放......

this.scale = params.scale.y + dy*2 / rect.attr('height');

http://jsfiddle.net/y5Jag/