update 0.7.7
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "0.7.6",
|
||||
"version": "0.7.7",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/dooringx-lib.esm.js",
|
||||
|
@@ -50,8 +50,8 @@ export const innerDrag = function (
|
||||
innerDragState.startX = Math.round(e.clientX);
|
||||
innerDragState.startY = Math.round(e.clientY);
|
||||
innerDragState.item = item;
|
||||
// innerDragState.itemX = item.left; 会导致框选后移动问题
|
||||
// innerDragState.itemY = item.top;
|
||||
innerDragState.itemX = item.left; // 会导致框选后移动问题 进行分类判断 否则体验不是很好
|
||||
innerDragState.itemY = item.top;
|
||||
innerDragState.isDrag = true;
|
||||
innerDragState.ref = ref;
|
||||
innerDragState.current = store.getIndex();
|
||||
@@ -76,6 +76,8 @@ export const innerContainerDrag = function (config: UserConfig) {
|
||||
if (current?.position === 'static') {
|
||||
return;
|
||||
}
|
||||
const focus = config.getFocusState();
|
||||
const isMulti = focus.blocks.length > 1;
|
||||
let { clientX: moveX, clientY: moveY } = e;
|
||||
const { startX, startY } = innerDragState;
|
||||
const scale = scaleState.value;
|
||||
@@ -87,23 +89,35 @@ export const innerContainerDrag = function (config: UserConfig) {
|
||||
lastblock = innerDragState.item;
|
||||
newblock = cloneblock.map((v) => {
|
||||
if (v.focus && v.position !== 'static') {
|
||||
v.left = Math.round(v.left + durX);
|
||||
v.top = Math.round(v.top + durY);
|
||||
if (isMulti) {
|
||||
v.left = Math.round(v.left + durX);
|
||||
v.top = Math.round(v.top + durY);
|
||||
} else {
|
||||
v.left = Math.round(innerDragState.itemX + durX);
|
||||
v.top = Math.round(innerDragState.itemY + durY);
|
||||
}
|
||||
}
|
||||
return v;
|
||||
});
|
||||
} else {
|
||||
newblock = store.getData().block.map((v) => {
|
||||
if (v.focus && v.position !== 'static') {
|
||||
v.left = Math.round(v.left + durX);
|
||||
v.top = Math.round(v.top + durY);
|
||||
if (isMulti) {
|
||||
v.left = Math.round(v.left + durX);
|
||||
v.top = Math.round(v.top + durY);
|
||||
} else {
|
||||
v.left = Math.round(innerDragState.itemX + durX);
|
||||
v.top = Math.round(innerDragState.itemY + durY);
|
||||
}
|
||||
}
|
||||
return v;
|
||||
});
|
||||
}
|
||||
store.setData({ ...store.getData(), block: newblock });
|
||||
innerDragState.startX = moveX;
|
||||
innerDragState.startY = moveY;
|
||||
if (isMulti) {
|
||||
innerDragState.startX = moveX;
|
||||
innerDragState.startY = moveY;
|
||||
}
|
||||
}
|
||||
resizerMouseMove(e, config);
|
||||
rotateMouseMove(e, config);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* @Author: yehuozhili
|
||||
* @Date: 2021-03-14 12:09:11
|
||||
* @LastEditors: yehuozhili
|
||||
* @LastEditTime: 2021-07-29 10:48:29
|
||||
* @LastEditTime: 2021-08-04 11:39:02
|
||||
* @FilePath: \dooringx\packages\dooringx-lib\src\core\innerDrag\state.ts
|
||||
*/
|
||||
import { RefObject } from 'react';
|
||||
@@ -17,8 +17,8 @@ export interface innerDragStateType {
|
||||
ref: RefObject<HTMLDivElement> | null;
|
||||
current: number;
|
||||
lastClick: null | IBlockType;
|
||||
// itemX: number;
|
||||
// itemY: number;
|
||||
itemX: number;
|
||||
itemY: number;
|
||||
}
|
||||
|
||||
export const innerDragState: innerDragStateType = {
|
||||
@@ -29,6 +29,6 @@ export const innerDragState: innerDragStateType = {
|
||||
ref: null,
|
||||
current: 0,
|
||||
lastClick: null,
|
||||
// itemX: 0,
|
||||
// itemY: 0,
|
||||
itemX: 0,
|
||||
itemY: 0,
|
||||
};
|
||||
|
Reference in New Issue
Block a user