我一直在努力为raphael.js中的一个集合实现拖放。
我已经设法在JSFiddle上使用this代码为圆圈组成的集合。
var r = Raphael(10, 50, 600, 600);
var Intermediate = r.set();
var start = function () {
// storing original coordinates
this.ox = this.attr("cx");
this.oy = this.attr("cy");
};
move = function (dx, dy) {
// move will be called with dx and dy
Intermediate.attr({cx: this.ox + dx, cy: this.oy + dy});
};
up = function () {};
Intermediate.drag(move, start, up);
但是,对于由矩形和文本组成的集合,这不起作用,因为它们没有cy和cx属性。分别用x和y替换cx和cy不起作用,因为两个对象将具有不同的x和y值,而同心圆将具有相同的cx和cy值。
我在JSFiddle上找到了一个解决方案here,它在Raphael.st中定义了一个新方法。
Raphael.st.draggable = function() {};
然后只需启用该集就可以拖动:
mySet.draggable();
当我尝试在visual studio中实现此解决方案时,我收到错误“0x800a1391 - JavaScript运行时错误:'Raphael'未定义”。
我不明白为什么会这样,我已经将Raphael脚本添加到我的HTML中。
任何帮助都将不胜感激。