From fa4cc210bcd0f55275e8c19af638cee937d2272e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 5 Feb 2026 17:06:25 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E5=9D=97=20=E5=88=92=E5=87=BA=E4=BE=A7=E6=A0=8F?= =?UTF-8?q?=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel <845765@qq.com> --- app/src/mobile/util/touch.ts | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/app/src/mobile/util/touch.ts b/app/src/mobile/util/touch.ts index f3b873f33..e42499e5f 100644 --- a/app/src/mobile/util/touch.ts +++ b/app/src/mobile/util/touch.ts @@ -254,31 +254,18 @@ export const handleTouchMove = (event: TouchEvent) => { scrollElement = hasClosestByClassName(target, "layout-tab-bar") || hasClosestByClassName(target, "av__scroll") || hasClosestByClassName(target, "av__kanban"); } else if (scrollElement.dataset.type === "NodeMathBlock") { - scrollElement = target; - while (scrollElement && scrollElement.dataset.type !== "NodeMathBlock") { - if (scrollElement.nodeType === 1 && scrollElement.scrollWidth > scrollElement.clientWidth) { - if (scrollElement.parentElement.scrollWidth === scrollElement.parentElement.clientWidth) { - break; - } + while (scrollElement && scrollElement.nodeType === 1) { + if (scrollElement.scrollWidth > scrollElement.clientWidth) { + break; } - scrollElement = scrollElement.parentElement; + scrollElement = scrollElement.firstElementChild as HTMLElement; } } - let noScroll = false; - if (scrollElement && scrollElement.scrollLeft === 0) { - scrollElement.scrollLeft = 1; - if (scrollElement.scrollLeft === 0) { - noScroll = true; - } - } - if (!noScroll) { - if (scrollElement && ( - (xDiff < 0 && scrollElement.scrollLeft > 1) || - (xDiff > 0 && scrollElement.clientWidth + scrollElement.scrollLeft < scrollElement.scrollWidth) - )) { - scrollBlock = true; - return; - } + if (scrollElement && ( + (xDiff < 0 && scrollElement.scrollLeft > 0) || + (xDiff > 0 && Math.ceil(scrollElement.clientWidth + scrollElement.scrollLeft) < scrollElement.scrollWidth) + )) { + scrollBlock = true; } if (scrollBlock) { return;