美文网首页iOS移动端开发
解决iOS下滚动丢失惯性问题

解决iOS下滚动丢失惯性问题

作者: zhangjingbibibi | 来源:发表于2018-10-31 14:28 被阅读4次

在移动端h5中会出现横向/纵向滚动的效果,但是在iPhone中滚动速度很慢,感觉不流畅,有种卡卡的感觉,但是在安卓设备上没有这种感觉。

其实一行代码就可以实现。

-webkit-overflow-scrolling: auto | touch;

auto: 是自然滚动,手指松开后,就不再滚动。
touch: 手指松开后,会惯性滚动一段距离。

接下来说说,为什么这行代码会有如此效果。

-webkit-overflow-scrolling: touch 启用了硬件加速特性。实际上,在Safari是有用原生控件来实现的,对于有-webkit-overflow-scrolling: touch的网页,会创建一个UIScrollView,然后提供一个子layer给渲染模版使用。
在Webkit 108400版本左右支持,iOS Safari >=5.0,Android >= 4.0。

总结一下,对于我们前端来说,只需要知道css的一行webkit-overflow-scrolling是开启了硬件加速,让滑动流畅就可以了。

同时推荐2个插件,iScroll和better-scroll(可搭配vue使用),better-scroll是基于iScroll进行了封装改进,但是个人认为:用法api都大同小异

最后,记录一下,如果不是做滑动列表,而是整个页面,如果感觉滚动区域有问题,可以这样检测一下:

找一下,页面css中是不是有怎么一块代码:

html, html body {
    position: relative;
    overflow-x: hidden;
    height: 100%
}

然后加一行这个:

body {
  overflow: initial !important;
}

应该就可以了~

最后的最后,今天看segmentfault中提到一行代码:

setTimeout(event, 0) 

可以解决移动端 页面滑动卡顿问题。

相关文章

  • 解决iOS下滚动丢失惯性问题

    在移动端h5中会出现横向/纵向滚动的效果,但是在iPhone中滚动速度很慢,感觉不流畅,有种卡卡的感觉,但是在安卓...

  • h5移动端相关问题记录

    禁止H5 ios滚动回弹,解决弹窗内滚动和页面同步滚动问题(页面为swiper整屏翻页) 引入inobounce....

  • iOS UIScrollView 问题汇总

    问题一、 iOS UIScrollView 无法滚动 没有弹簧效果解决方案一般情况下,检查如下: 1、没有设置co...

  • H5适配bug总结

    iOS兼容bug 当iOS页面滚动时导致文本框光标偏移以及概率性的页面空白。原因:设置滚动惯性-webkit-ov...

  • 移动端兼容性问题2 body和html不能禁止滚动条出现

    网页版本没有显示滚动条 但是手机端安卓和ios手机不能禁止滚动条移动端滚动穿透问题完美解决方案html body ...

  • did not find header 'Flutter

    出现这个问题的原因可能是ios/Flutter 下的某些文件丢失 解决办法 1 新建一个flutter项目 2 c...

  • IOS滑动没有惯性,不流畅

    使用了自定义的滚动(在元素上添加了overflow: auto;),滚动时,ios手机没有惯性,不流畅,在滚动的元...

  • ios bugs

    iOS 11 下 UICollectionView 出现滚动条被 HeaderView 遮挡的问题 https:/...

  • 精确获取offsetTop

    目的:精确获取offsetTop,解决H5滚动监听的时候,获取的offsetTop有问题,解决安卓和IOS上的表现...

  • -webkit-overflow-scrolling

    解决ios在div内设置overfolw:scroll 滚动不平滑

网友评论

    本文标题:解决iOS下滚动丢失惯性问题

    本文链接:https://www.haomeiwen.com/subject/anjzzftx.html