Angular使用ng-drag和ng-drop实现元素拖拽

项目里看到一个页面中实现了对元素的拖拽,觉得很神奇,网上查了不少也没有百度到什么,终于查到一个和项目代码一致的解释,才有点明白是什么意思。

说明:ngDraggable可以实现元素的拖动,只需要在元素上加入指令ng-drag="true" ng-drag-data="xxx",既可以将数据xxx连同元素一起拖动到其他元素节点上,可以接收元素的节点需要加入指令ng-drop="true" ng-drop-success="function($data,$index,$event)",然后只需要在js中定义好这里的function就可以了。(港真,具体定义了些啥我也没太看懂)其实到这里就大概懂了这个流程是怎么绑定的了。

但原作者还记录了一些问题如下:

1.要拖动的元素无法拖动,但是审查元素时候发现matrix3d函数的值却在变动,经过检查发现,要拖动的元素的display属性必须为block,有时候有些模版会修改display属性,这时候就需要我们注意,手动地将这些地方的display属性置为block;

2.要拖动的元素拖到某一个div边界块之后就消失了,但是拖出去依然有动作效果,出现这种情况,并不是因为z-index的值过低(事实上拖动之前已经被设置为99999了),而是因为要拖动的元素的某一个父元素设置了overflow属性,无论设置成auto,hidden或者是scroll,都会引起这种现象的发生,因此必须将此属性设置为inherit,继承父元素的该属性。

3.拖动时候有时候会触发多个ng-drop-success的事件,此时需要用到传入的$event事件来区分,或者根据传入的$data参数的类型(或者具体的值)来区分响应哪个事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值