【发布时间】:2015-02-04 06:03:18
【问题描述】:
我已经成功地使用以下代码(由小方块演示)在考虑鼠标位置的情况下成功拖动了一个矩形
当矩形旋转时,矩形与形状平行拖动,请有人告诉我如何纠正这个问题。我认为这可以用一点三角函数来完成,但没有成功计算出相反的(x)和相邻的(y)
可以在这里看到一个演示http://jsbin.com/tihobu/2/edit?html,js,output
var s = Snap(400,400);
var smallSquare = s.rect(100, 100, 50,50).attr({fill:"#ffcc00"});
var bigSquare = s.rect(100,20,150,150).attr({fill:"#ff6600"});
var startx, starty;
var t = bigSquare.transform().localMatrix;
t.rotate(45);
bigSquare.transform(t);
var moveFunc = function (dx, dy, posx, posy) {
var xadj = startx - (0 - dx);
var yadj = starty - (0 - dy);
this.attr('x',xadj);
this.attr('y',yadj);
};
var startFunc = function(){
startx = this.attr('x');
starty = this.attr('y');
console.log("Move started");
};
var stopFunc = function(){};
bigSquare.drag( moveFunc,startFunc,stopFunc );
smallSquare.drag( moveFunc,startFunc,stopFunc );
感谢大卫
【问题讨论】: