左右方向判断问题以及节流处理 —— 拖拽实现二
左右方向的判断
在onDragEnd判断时,发现在拖拽左边或者右边会产生问题,需要根据此进行判断,如果是距离原始位置左侧时需要将在endIndex中+1,避免拖拽跨越两个的左侧,而在右侧时则不需要判断,当在最左侧或者最右侧时单独判断,主要代码如下
const handleDragEnd = (e: any,index: number) => {
const {clientX,clientY} = e
const {leftWidth,rightWidth} = mouseInDrag
let endIndex
for(let i = 0;i < distanceArr.length;i++) {
const {left,top,right,bottom} = distanceArr[i]
if(left > (clientX - leftWidth) && i === 0) {
endIndex = i
break
}else if(left < (clientX - leftWidth) && i === distanceArr.length - 1) {
endIndex = i
break
}else if(left < (clientX - leftWidth) && distanceArr[i+1].left > (clientX - leftWidth) ) {
// 判断向左还是向右
// 向左运动