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) {