前端h5开发,body内部div滚动盒子拖动滚动条时整个页面会被拖动

1.使用css的touch-action属性

使用环境:使用PC端组件时,移动端也需要该代码,但是到了移动端双指拖动屏幕会产生放大缩小问题;

2.属性值

1.touch-action:none; 禁用元素上的所有手势,使用自己的拖放和缩放api (使用后 滚动条效果消失)
2. manipulation: 解决缩放手势引起的点击事件延迟
3. pan-x: 手指可以左右平移
4. pan-left: 手指可以往左移动,移动开始后可以往右恢复
5. pan-right: 手指可以往右移动,移动开始后还是可以往左恢复的
6. pan-y: 手指可以垂直移来移去
7. pan-up: 手指可以往上移动
8. pan-down: 手指可以往下移动
9. pan-zoom: 手指可以用来缩放页面

### 解决 UniApp H5 页面不能左右滑动的问题 对于 UniApp 开发者来说,在处理 H5 页面遇到无法左右滑动的情况,可以通过调整 CSS 和 HTML 结构来解决问题。具体措施如下: #### 方法一:修改 `body` 或容器的 overflow 属性 如果整个页面不允许左右滑动,则可能是由于设置了全局或局部的 `overflow-x:hidden;` 导致[^1]。移除该属性或将此属性设为 visible 可能会恢复正常的水平滚动行为。 ```css /* 修改 body 的 overflow */ body { overflow-x: auto !important; } ``` #### 方法二:使用 `-webkit-overflow-scrolling` 针对 WebKit 浏览器内核(如 Chrome, Safari),可以尝试启用 momentum scrolling 来改善用户体验并支持更流畅的手指拖拽效果[^2]。 ```css .container-webkit-overflow-scrolling: touch; overflow-x: scroll; } ``` #### 方法三:确保内容宽度超出视窗范围 有即使启用了上述设置仍然看不到横向滚动条的原因在于内容并没有真正超过屏幕宽度。因此需要确认子元素是否有足够的宽度以触发溢出条件[^3]。 ```html <div class="scrollable-container"> <!-- 子元素总宽应于父级 --> </div> ``` ```css .scrollable-container { white-space: nowrap; } .scrollable-item { display: inline-block; min-width: 100vw; /* 至少等于视口宽度 */ } ``` 通过以上三种方式之一或多组合的方式通常能够有效解决多数情况下 UniApp 应用程序中的 H5 页面不支持左右滑动的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值