diff --git a/supply.html b/supply.html
index faafff8..d57ec29 100644
--- a/supply.html
+++ b/supply.html
@@ -461,8 +461,8 @@
flex-direction: column;
z-index: 1000;
overflow: hidden;
- /* 防止iOS滚动穿透和模态框拖动 */
- touch-action: none;
+ /* 防止iOS滚动穿透和模态框拖动,只允许垂直滑动 */
+ touch-action: pan-y;
/* 防止拖动 */
user-select: none;
-webkit-user-select: none;
@@ -478,18 +478,19 @@
background-color: white;
width: 100%;
height: 100%;
- max-width: none;
+ max-width: 100%;
max-height: none;
border-radius: 0;
overflow: hidden;
+ overflow-x: hidden;
box-shadow: none;
display: flex;
flex-direction: column;
/* 启用iOS原生滚动 */
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
- /* 允许触摸操作 */
- touch-action: auto;
+ /* 只允许垂直触摸操作 */
+ touch-action: pan-y;
/* 允许内容选择 */
user-select: auto;
-webkit-user-select: auto;
@@ -500,11 +501,12 @@
.modal-body {
flex: 1;
overflow-y: auto;
+ overflow-x: hidden;
/* 启用iOS原生滚动 */
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
- /* 允许触摸操作 */
- touch-action: auto;
+ /* 只允许垂直触摸操作 */
+ touch-action: pan-y;
}
/* iOS滚动穿透修复 */
@@ -6005,6 +6007,16 @@
// 定义触摸事件监听器
touchMoveListener = function(e) {
+ // 计算水平和垂直滑动距离
+ const deltaX = Math.abs(e.touches[0].pageX - e.changedTouches[0].pageX);
+ const deltaY = Math.abs(e.touches[0].pageY - e.changedTouches[0].pageY);
+
+ // 阻止水平滑动
+ if (deltaX > deltaY) {
+ e.preventDefault();
+ return;
+ }
+
// 获取触摸目标
const target = e.target;
const createSupplyModal = document.getElementById('createSupplyModal');