优化事件总线
This commit is contained in:
@@ -1189,8 +1189,10 @@ class DragStateManager {
|
||||
});
|
||||
|
||||
// 设置起始位置
|
||||
const startX = position.x || event.clientX;
|
||||
const startY = position.y || event.clientY;
|
||||
const clientX = event?.clientX || eventData.clientX;
|
||||
const clientY = event?.clientY || eventData.clientY;
|
||||
const startX = position.x || clientX;
|
||||
const startY = position.y || clientY;
|
||||
dragState.startPosition = { x: startX, y: startY };
|
||||
dragState.updatePosition(startX, startY);
|
||||
|
||||
@@ -1250,8 +1252,10 @@ class DragStateManager {
|
||||
}
|
||||
|
||||
// 更新位置
|
||||
const currentX = position.x || event.clientX;
|
||||
const currentY = position.y || event.clientY;
|
||||
const clientX = event?.clientX || eventData.clientX;
|
||||
const clientY = event?.clientY || eventData.clientY;
|
||||
const currentX = position.x || clientX;
|
||||
const currentY = position.y || clientY;
|
||||
dragState.updatePosition(currentX, currentY);
|
||||
|
||||
// 检测目标区域
|
||||
@@ -1308,8 +1312,10 @@ class DragStateManager {
|
||||
const dragState = activeDrag.dragState;
|
||||
|
||||
// 更新最终位置
|
||||
const finalX = finalPosition.x || event.clientX;
|
||||
const finalY = finalPosition.y || event.clientY;
|
||||
const clientX = event?.clientX || eventData.clientX;
|
||||
const clientY = event?.clientY || eventData.clientY;
|
||||
const finalX = finalPosition.x || clientX;
|
||||
const finalY = finalPosition.y || clientY;
|
||||
dragState.updatePosition(finalX, finalY);
|
||||
|
||||
// 设置最终状态
|
||||
@@ -1578,6 +1584,12 @@ class DragStateManager {
|
||||
// 这里可以实现具体的拖拽目标检测逻辑
|
||||
// 例如:检测鼠标下的元素类型和区域
|
||||
|
||||
// 验证坐标是否为有限值,避免elementFromPoint抛出错误
|
||||
if (!Number.isFinite(x) || !Number.isFinite(y)) {
|
||||
console.warn('检测拖拽目标时坐标无效:', { x, y });
|
||||
return null;
|
||||
}
|
||||
|
||||
// 简化实现:检查坐标是否在预设区域内
|
||||
const targetAreas = ['main-area', 'floating-area', 'hidden-area'];
|
||||
const detectedArea = targetAreas[Math.floor(Math.random() * targetAreas.length)];
|
||||
|
||||
Reference in New Issue
Block a user