解决使用了属性overflow:scroll、overflow-y:scroll、overflow-x:scroll;的网页在iPhone iOS Safari浏览器中滑动不流畅问题...

在使用了属性overflow:scroll、overflow-y:scroll、overflow-x:scroll;的元素上加上-webkit-overflow-scrolling: touch;即可

 

在IPhone上对div盒子设置高度height:XXXpx并使用overflow-y:scroll使盒子出现滚动条可能与浏览器自身滚动条冲突导致滑动不流畅

 

参考资料:

解决页面使用overflow: scroll在iOS上滑动卡顿的问题

 

网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现

-webkit-overflow-scrolling 带来的 BUG

转载于:https://www.cnblogs.com/Arlar/p/5725908.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 上,使用 `overflow: scroll` 或 `overflow-y: hidden` 可能会导致页面卡顿。这是因为 iOS 在处理滚动时使用的是软件渲染,而不是硬件加速。为了解决这个问题,可以尝试以下几种方法: 1. 使用 `transform: translateZ(0)` 开启硬件加速 将要滚动的元素的样式设置为 `transform: translateZ(0)`,可以开启硬件加速,从而提高滚动的性能。 ```css .scroll { overflow: scroll; -webkit-overflow-scrolling: touch; transform: translateZ(0); } ``` 2. 使用 `will-change` 预先声明动画属性 使用 `will-change` 预先声明要进行动画的属性,可以让浏览器提前做好优化,从而提高滚动的性能。 ```css .scroll { overflow: scroll; -webkit-overflow-scrolling: touch; will-change: scroll-position; } ``` 3. 使用 `requestAnimationFrame` 控制滚动 使用 `requestAnimationFrame` 控制滚动,可以让滚动更加平滑,从而提高滚动的性能。 ```js var scrollEl = document.querySelector('.scroll'); var lastScrollTop = 0; var ticking = false; scrollEl.addEventListener('scroll', function() { lastScrollTop = scrollEl.scrollTop; if (!ticking) { window.requestAnimationFrame(function() { scrollHandler(lastScrollTop); ticking = false; }); } ticking = true; }); function scrollHandler(scrollTop) { // 处理滚动 } ``` 以上是三种解决 iOS使用 `overflow: scroll` 或 `overflow-y: hidden` 导致页面卡顿的方法,可以根据实际情况选择适合自己的方法来解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值