我正在使用 Raphael library
来绘制和处理 extjs
应用中的对象。基本上我能够通过以下方式找到DRAG
SET
的方法:
var set = paper.set();
set.push(
paper.circle(200,200,65).attr({fill: "orange", stroke: "black"}),
paper.text(200, 200, buttonText).attr({"font-size": 24, "font-weight": "bold", fill: "black"})
);
set.data("myset", set);
set.data("position", [0,0]);
var current_position = [0,0];
set.drag(
function(dx, dy) {
this.data('myset').transform("T" + (this.data("position")[0] + dx) + "," + (this.data("position")[1] + dy));
current_position = [dx,dy];
},
function() {
this.data('myset').data("position",
[this.data("position")[0] += current_position[0],
this.data("position")[1] += current_position[1]
]);
}
);
我在jsFiddle中找到了这个小代码并对其进行了一些修改以完成我需要的操作。您可以查看演示here。当您通过单击一次拖动项目时,一切接缝都可以工作。 但问题是当你doublclick
偶然发现play with it
/ drag
时,它会开始跳跃。坐标搞砸了。
你能帮我找一下我的坐标搞砸的地方。感谢
答案 0 :(得分:0)
我通过查看此示例来修复它:here
var paper = Raphael(0, 0, 500, 500);
var set = paper.set();
set.push(paper.circle(100,100,35), paper.circle(150,150,15));
set.attr("fill", "orange");
set.data("myset", set);
set.drag(
function(dx, dy, x, y, e) {
this.data('myset').transform("T" + dx + "," + dy);
},
function(x, y, e) {},
function(e) {}
);