vue draggable组件实现拖拽及点击无效问题的解决

来自:网络
时间:2022-05-21
阅读:
目录

在实现一个移动端项目的时候,根据产品需求,要实现一个既能增加删除又可以拖拽调换位置的效果,然后我使用了draggable组件,然后发现放到手机上的时候苹果(ios)手机可以正常使用,但是鸿蒙系统的手机(例如华为pro40)有些是不可以正常拖拽、增加和删除,只能一开始正常操作两三个,然后后面就怎么点都没有什么反应。通过多次尝试和查找方法,最终找到了解决办法,我在这里总结一下。

一、效果图

vue draggable组件实现拖拽及点击无效问题的解决

二、拖拽及点击无效解决方法

只需要在设置handle属性就可以了,vuedraggable的文档中有说明 options 配置项已经不在使用,所以我们直接将handle单独拿出来使用即可,像这样:handle="'.defaultTypeTag'".defaultTypeTag 是要拖拽的块的类名,要注意的是需要做点击事件的项不能包含在这个类名里面,不然会无法触发点击事件

三、vuedraggable的使用

这里只贴出html代码,js相关代码逻辑直接根据需求处理即可。

1、安装和引入使用

// 安装 
npm install vuedraggable
// 引入使用
import draggable from 'vuedraggable'

2、对应的html代码

<draggable
   class="list-group list-group-default"
   tag="ul"
   v-model="removetTypeList"
   :handle="'.defaultTypeTag'"
   v-bind="dragOptions"
   @start="isDragging = true"
   @update="updateDefaultTypeList"
   @end="isDragging = false"
 >
   	<transition-group type="transition" name="flip-list">
       <li v-for="(v,i) in removetTypeList" :key="i">
          <div class="defaultTypeTag">
             <img :src="v.icon" alt="" class="img">
             <p class="p">{{v.classifyName.substring(0,5)}}<span v-if="v.classifyName.length>5">...</span></p>
          </div>
          <i class="removeTypeList" @click.stop.prevent="handRemoveTypeChange(v,i)"></i> 
       </li>
    </transition-group>
</draggable>
返回顶部
顶部