只允许向一个方向拖动ng-drag元素
allow ng-drag element to be dragged in one direction only
我使用https://github.com/fatlinesofcode/ngDraggable.
<div ng-drag="true"
ng-drop="true" ng-drag-start="example($data,$event)" >
</div>
div将被放置在它被拖出的地方,它工作得很好。但是,我希望它只被拖向y方向。
我该怎么做?使用额外的自定义指令?功能?控制器吗?
另外,我希望元素可以根据屏幕的大小拖动到最大距离,我该如何添加这个约束?
我发现这个https://github.com/fumitoito/angular-draggable,但我需要它回来时,它被丢弃在其他任何地方,除了drop区域,这是没有在我的情况下,它没有帮助回来的东西。
即使这是一个有点老的线程,我也有同样的要求,最后诉诸于修改ngdragable .js。对我来说,改变很简单。要拖动的元素的左侧位置始终为0,因此我只更改了ngDrag
指令中onmove
和onlongpress
函数中设置_tx变量的行:
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
函数中也进行类似的更改。
如果这类似于Dragula,那么您可以尝试找出克隆继承了什么类。例如,在Dragula中,有一个新元素看起来就像你用类.gu-mirror拖动的对象。观察这个元素,我注意到当我拖动它时,"left"answers"top"样式根据我拖动元素的位置进行了修改。因此,为了确保我只能上下拖动元素,我将"left"样式设置为"left: 0px!"重要"。看看这对你的案子有没有帮助。当然,这不是《德拉古拉》,但我相信方法会非常相似。
相关文章:
- jquery脚本只能在一个方向上正常工作
- JQuery后台位置似乎只在一个方向上起作用
- HTML5 JS-我如何使我的子弹/镜头在一个恒定的方向
- 有人能为我指明正确的方向,让一个javascript文件在另一个单独的javascript文件之后运行吗
- 在CSS的未来版本中,仅固定了一个方向的位置
- 使用 JavaScript 触发 CSS 动画淡入和淡出 - 仅适用于一个方向
- 柔性滑动器2在一个方向上继续循环而不工作
- Phaser Box2d-在一个方向上锁定拖动
- jQuery悬停在图像上,一个方向运行良好,另一个方向跳动
- Cordova屏幕锁定方向不是一个功能
- 在一个角度的方向上移动精灵
- 如何在移动应用程序上仅在一个页面上锁定方向
- Nivo Slider滑动解决方案(不总是在一个方向上滑动)
- 让一个箭头指向另一个标记的方向
- 滑动一个除法,使其沿着滑动方向
- HTML画布以恒定的速度在一个方向上移动一个对象
- JQuery图像旋转动画,工作在一个方向,而不是另一个
- 只允许向一个方向拖动ng-drag元素
- 谷歌地图路线方向路径颜色改变导航仪从一个航路点移动到另一个航路点
- 我如何应用地理位置坐标从谷歌地图得到方向到一个特定的地方