diff --git a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollView.cs b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollView.cs index 120a3bb..5b0df8e 100644 --- a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollView.cs +++ b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollView.cs @@ -71,9 +71,16 @@ namespace MuHua { } /// 视图滚轮滑动 private void ViewportWheel(WheelEvent evt) { - float x = Mathf.Clamp(evt.delta.x, -1, 1); - float y = Mathf.Clamp(evt.delta.y, -1, 1); - UpdateValue(new Vector2(value.x - x, value.y - y)); + float maxWidth = Viewport.resolvedStyle.width - Container.resolvedStyle.width; + float minWidth = Mathf.Min(Viewport.resolvedStyle.width, Container.resolvedStyle.width); + float x = evt.delta.x * minWidth / maxWidth; + + float maxHeight = Viewport.resolvedStyle.height - Container.resolvedStyle.height; + float minHeight = Mathf.Min(Viewport.resolvedStyle.height, Container.resolvedStyle.height); + float y = evt.delta.y * minHeight / maxHeight; + + value = value - new Vector2(x, y); + UpdateValue(value); } /// 拖拽按下 private void DraggerDown(PointerDownEvent evt) { diff --git a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewH.cs b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewH.cs index 268ce1f..a9b18ba 100644 --- a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewH.cs +++ b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewH.cs @@ -76,8 +76,11 @@ namespace MuHua { } /// 滚轮滑动 private void ViewportWheel(WheelEvent evt) { - float wheel = Mathf.Clamp(evt.delta.y, -1, 1); - UpdateValue(value - wheel); + float maxHeight = Viewport.resolvedStyle.height - Container.resolvedStyle.height; + float minHeight = Mathf.Min(Viewport.resolvedStyle.height, Container.resolvedStyle.height); + float y = evt.delta.y * minHeight / maxHeight; + value = value - y; + UpdateValue(value); } /// 拖拽按下 private void DraggerDown(PointerDownEvent evt) { diff --git a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewV.cs b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewV.cs index 7538e7c..51e904f 100644 --- a/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewV.cs +++ b/Packages/UITool/Runtime/ModuleUIPanel/UIScrollView/UIScrollViewV.cs @@ -76,8 +76,11 @@ namespace MuHua { } /// 滚轮滑动 private void ViewportWheel(WheelEvent evt) { - float wheel = Mathf.Clamp(evt.delta.y, -1, 1); - UpdateValue(value - wheel); + float maxHeight = Viewport.resolvedStyle.height - Container.resolvedStyle.height; + float minHeight = Mathf.Min(Viewport.resolvedStyle.height, Container.resolvedStyle.height); + float y = evt.delta.y * minHeight / maxHeight; + value = value - y; + UpdateValue(value); } /// 拖拽按下 private void DraggerDown(PointerDownEvent evt) {