dragElm: 当前拖拽元素
dragIndex:当前拖拽元素的index
dragCurrentIndex: 拖拽状态中变化的index
isDrag: 是否开启拖拽
dragClient:点击时鼠标位置相对于当前被点击元素顶部的位置
移动时需时刻计算当前元素的index,设置一个触发元素index变化的范围,例如:行高40px,15-25px范围内进行index变化,时刻记录上一次鼠标位置,根据上一次鼠标位置判断当前鼠标移入状态是向上移还是向下移动,根据移动方向调整index,判断当前位置相对于初始位置的移动方向,调整所有列表的位置。
拖拽结束时,根绝元素最后移动方向,调整相对应数据内的排序,将所有状态重置
效果图如下: