body 滚动:在移动端如果使用 body 滚动,意思就是页面的高度由内容自动撑大,body 自然形成滚动条,这时我们监听 window.onscroll,发现 onscroll 并没有实时触发,只在手指触摸的屏幕上一直滑动时和滚动停止的那一刻才触发, 采用了 wk 内核的 webview 除外。
body 滚动 局部滚动
局部滚动:在移动端如果使用局部滚动,意思就是我们的滚动在一个固定宽高的 div 内触发,将该 div 设置成 overflow:scroll/auto; 来形成 div 内部的滚动,这时我们监听 div 的 onscroll 发现触发的时机区分 android 和 ios 两种情况,具体可以看下面表格:
1) 列表较长时 dom 数量较多时,在触发下拉刷新的时机时将页面视窗之外的 dom 元素隐藏或者存放在 fragment 里面。
2) 在刷新完成之后手指离开(touchend)时将隐藏的元素显示出来。
3) 需要注意的是,隐藏和显示视窗外的元素这个操作在下拉刷新时只会执行一次,并且只有在下拉刷新时才会执行。