2

我正在使用以下代码来允许.dataCard类的所有成员向左或向右拖动,但恢复到原来的位置。

$('.dataCard').draggable({ axis: 'x', revert: true });

如何判断物品与原始位置的距离?

4

3 回答 3

3

只穿过一个轴..

drag: function (e, ui){
            y2 = ui.position.top;
            x2 = ui.position.left;
            if(y2>100){alert("greater");}
                    if(y2>100){alert("greater");}

        }

JSFIDDLE 演示

于 2013-09-03T17:24:55.407 回答
1

您可以使用CSS 属性来确定它在事件中left移动了多远:revert

revert: function() {
    alert($(this).css('left'));
    return true;
}

演示

于 2013-09-03T17:17:04.363 回答
0

实际的数学是三角函数,你需要计算距离,即使是对角线。

开始时:

start_position = ui.position;

然后在拖动:每次鼠标移动都会发生这种情况,您可以计算距离

if ( lineDistance( start_position , ui.position ) > 100 ) 
  {
    //do something here
  }

神奇的功能是这样的:

function lineDistance( point1, point2)
{
  var xs = 0;
  var ys = 0;

  xs = point2.x - point1.x;
  xs = xs * xs;

  ys = point2.y - point1.y;
  ys = ys * ys;

  return Math.sqrt( xs + ys );
}
于 2014-02-07T16:41:53.260 回答