diff --git a/app/src/layout/dock/Files.ts b/app/src/layout/dock/Files.ts index 1c0b01e41..782e9b722 100644 --- a/app/src/layout/dock/Files.ts +++ b/app/src/layout/dock/Files.ts @@ -518,14 +518,19 @@ export class Files extends Model { ) && // 防止文档拖拽到笔记本外 !(!sourceOnlyRoot && targetType === "navigation-root")) { - const nodeRect = liElement.getBoundingClientRect(); - if (event.clientY > nodeRect.top + 20) { - liElement.classList.add("dragover__bottom"); - event.preventDefault(); - } else if (event.clientY < nodeRect.bottom - 20) { - liElement.classList.add("dragover__top"); - event.preventDefault(); + const nodeRect = (liElement as HTMLElement).getBoundingClientRect(); + if (targetType === "navigation-root" && sourceOnlyRoot) { + if (event.clientY > nodeRect.top + nodeRect.height / 2) { + (liElement as HTMLElement).classList.add("dragover__bottom"); + } else { + (liElement as HTMLElement).classList.add("dragover__top"); + } + } else if (event.clientY > nodeRect.top + nodeRect.height * 3 / 4) { + (liElement as HTMLElement).classList.add("dragover__bottom"); + } else if (event.clientY < nodeRect.bottom - nodeRect.height * 3 / 4) { + (liElement as HTMLElement).classList.add("dragover__top"); } + event.preventDefault(); } if (liElement.classList.contains("dragover__top") || liElement.classList.contains("dragover__bottom") || (targetType === "navigation-root" && sourceOnlyRoot)) { diff --git a/app/src/layout/dock/Outline.ts b/app/src/layout/dock/Outline.ts index 222ace95a..95c713366 100644 --- a/app/src/layout/dock/Outline.ts +++ b/app/src/layout/dock/Outline.ts @@ -274,9 +274,9 @@ export class Outline extends Model { return; } const selectRect = selectItem.getBoundingClientRect(); - if (moveEvent.clientY > selectRect.bottom - 10) { + if (moveEvent.clientY > selectRect.top + selectRect.height * 3 / 4) { selectItem.classList.add("dragover__bottom"); - } else if (moveEvent.clientY < selectRect.top + 10) { + } else if (moveEvent.clientY < selectRect.bottom - selectRect.height * 3 / 4) { selectItem.classList.add("dragover__top"); } else { selectItem.classList.add("dragover");