当前位置: 首页 > 工具软件 > Vue.Draggable > 使用案例 >

vue.draggable多列表间拖拽列表数据为空时,拖拽失效bug解决

冯渝
2023-12-01

问题描述:

vue.draggable实现多列表间单元格相互拖拽添加移动时,当某一列表数据为空或拖拽后为空时,再次将其他列表元素拖拽到该空别列表时,无法拖入的bug!

官方demo示例实例也有该bug!

原因:

可能是空数据时,拖拽其他列表子元素到该列表时,有效区域失效。

解决办法:

  1. 给draggable组件添加style="width: 100%; min-height: 330px",此时该行内样式会穿透落到组件内最外层的容器上,并生效!
  2. 去除子元素外围包裹的 transition-group 过渡组件(测试时发现不去除的话,该组件内元素无法拖拽)
  3. style="width: 100%; min-height: 330px" 最小高度最大,拖拽时响应的区域也就越大。建议调大,否则拖动到最小高度范围之外时,拖拽无法响应

<!-- vue中代码 -->
<draggable
    style="width: 100%; min-height: 330px"
    v-model="arr1"
    group="site"
    animation="300"
    dragClass="dragClass"
    ghostClass="ghostClass"
    chosenClass="chosenClass"
    @start="onStart"
    @end="onEnd"
>
<!-- <transition-group> 去除-->
    <div class="item" v-for="item in arr2" :key="item.id">{{item.name}}</div>
<!-- </transition-group> -->
</draggable>

总结:

        真实让人头大!

 类似资料: