解决overflow: auto在Ios中滑动不流畅

【bug】—— H5页面在 ios 端滑动不流畅的问题

IOS系统的惯性滑动效果非常6,但是当我们对div加overflow-y:auto;后是不会出这个效果的,滑动的时候会感觉很生涩。怎么办?

方案一:

在滚动容器内加-webkit-overflow-scrolling: touch

但这个方案有一个问题,在页面内具有多个overflow:auto的情况下,那些具有 绝对定位(absolute, fixed) 属性的元素,也会跟着滚动。

方案二:

body {overflow-x: hidden}

即,给 body 元素添加overflow-x:hidden。然后在滚动容器内加overflow-y: auto

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在 Vue 使用 `overflow-y` 属性来实现滚动,并且滚动到边界时出现了弹窗底部滑动的问题,可能的原因是滑动时触发了浏览器的默认行为,导致整个页面的滚动。为了避免这种情况,您可以尝试在滑动事件调用 `event.preventDefault()` 方法来阻止默认行为的发生。 以下是一个使用 Vue 实现的示例代码,您可以参考一下: ```html <template> <div class="container" ref="container" @scroll="handleScroll"> <div class="content"> <!-- 此处为滚动内容 --> </div> <div class="popup" ref="popup"> <!-- 此处为弹窗内容 --> </div> </div> </template> <script> export default { methods: { handleScroll(event) { const container = this.$refs.container; const popup = this.$refs.popup; const scrollTop = container.scrollTop; const containerHeight = container.offsetHeight; const popupHeight = popup.offsetHeight; const popupTop = popup.offsetTop; const popupBottom = popupTop + popupHeight; // 判断弹窗是否在可视区域内 if (popupBottom > scrollTop && popupTop < scrollTop + containerHeight) { // 如果弹窗底部超出可视区域,则将容器滚动到弹窗底部 if (popupBottom > scrollTop + containerHeight) { container.scrollTop = popupBottom - containerHeight; } // 如果弹窗顶部超出可视区域,则将容器滚动到弹窗顶部 if (popupTop < scrollTop) { container.scrollTop = popupTop; } // 阻止默认行为 event.preventDefault(); } } } }; </script> <style> .container { height: 200px; overflow-y: scroll; } .popup { position: absolute; bottom: 0; left: 0; width: 100%; height: 100px; background-color: #fff; } </style> ``` 在上述代码,我们在 `handleScroll` 方法判断弹窗是否在可视区域内,并根据其位置调整容器的滚动位置。同时,如果弹窗在可视区域内,我们还会调用 `event.preventDefault()` 方法来阻止默认行为的发生,以避免整个页面的滚动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值