2015-09-23 51 views
1

我正在使用https://github.com/fatlinesofcode/ngDraggable只允许将ng-drag元素向一个方向拖动

<div ng-drag="true" 
ng-drop="true" ng-drag-start="example($data,$event)" > 
</div> 

该div将被放置在哪里被拖出来,它工作得很好。但是,我希望它只能在y方向上拖动。

我该怎么做?使用额外的自定义指令?函数?控制器?

此外,我想要的元素被拖动到基于屏幕大小的最大距离可能是,我该如何添加这个约束?

我发现这个https://github.com/fumitoito/angular-draggable但我需要它回来,当它被丢弃在其他地方,除了在我的情况下没有拖放区域和它不会帮助回来的事情。

+1

看看[Nicolas Bevacqua的Angular Dragula](https://github.com/bevacqua/angular-dragula)。当然,它是迄今为止最好的可拖动库。 – Buzinas

+0

我不能用dragula指令拖动元素。有小费吗? –

+0

这没有帮助。任何人都可以帮助我修改ngDraggable以阻止垂直以外的方向移动吗? –

回答

0

即使这是一个有点旧线程,我有相同的要求,并最终采取修改ngDraggable.js。对我而言,改变很简单。拖动元素的左侧位置始终为0,所以我只改变了在ngDrag指令设置的_tx变量在onmoveonlongpress功能的线路:

if (_centerAnchor) { 
    _tx = 0; // _tx = _mx - element.centerX - _dragOffset.left; 
    _ty = _my - element.centerY - _dragOffset.top; 
} else { 
    _tx = 0; //_mx - _mrx - _dragOffset.left; 
    _ty = _my - _mry - _dragOffset.top; 
} 

如果使用ng-drag-clone你需要在onDragMove函数中也做类似的更改。