vue3-dnd
vue3-dnd copied to clipboard
使用自定义dragLayer,拖拽至非drop区域,会有一秒的僵直
拖动结束时,dragpreview元素会默认有一个返回起始位置的动画 自定义dragpreview元素时也会有接近1秒的等待时间, 才会dragend 这一段动画可以提供状态控制的接口?
你指的是这个效果吗?我可能没太理解你的问题
我举个例子 eg1 : https://hcg1023.github.io/vue3-dnd/example/dustbin/single-target.html eg2 : https://hcg1023.github.io/vue3-dnd/example/drag-around/custom-drag-layer.html
这个eg1中的元素拖动结束如果放置在dropable区域外部,会有一个动画回到之前的位置 如果拖动结束时在dropable区域内部,会立刻结束
eg2的preview元素是自定义的,当拖动到外面时,会僵直接近一秒
我想控制这个僵直状态
大概明白了,你的意思是松手的那一刻end并不会立刻触发,是吗? 另外由于自定义了dragPreview,所以native的动画效果肯定就不存在了
是这个问题 如果可以立刻结束拖拽状态,或者可以获取到回弹动画的状态自己覆盖到preview元素上,都会比eg2中的效果好
明白了,其实是自定义了 dragLayer 而不是 dragPreview,我们看到的其实是dragLayer僵直的过程
这个问题目前没有找到合适的解决方案,我观察了react-dnd,它也有同样的问题,主要原因是由于我们使用的是自定义dragLayer,其实僵直的过程是隐藏的dragPreview在执行native动画,我暂时还没有找到能监控到这个事件的方法,我还会持续关注这个问题
该问题在文档中有明确提及:使用这种方法,我们在离开容器时错过了默认的“返回”动画。但是,我们在自定义拖动反馈和零闪烁方面获得了极大的灵活性。