1.js设置body的高度为视口高度,

2.设置内滚动容器 #scrollBox

#scrollBox{
    overflow-x:hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling : touch;
}    

3.

body,html{
    overflow: hidden;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

------------------------------分割线--------------------------------------------------------------------

此时,许多页面的写法是

   document.body.addEventListener('touchmove',(e:any)=>{
       e.preventdefault();
    })

此时会发现,本该滚动的内容器#scrollBox偶现无法滚动,经过测试,猜想如下

虽然我们通过定位强行让body和html不动了,但是在下拉上拉的时候,浏览器的默认行为还是在。

偶现的#scrollBox无法滚动是因为此时body还没有滚完,在动画中。所以此时我们强行让它回归。

-------------------------分割线----------------------------------------------------------------------------------------

4.

    document.body.addEventListener('touchmove',(e:any)=>{
       document.body.scrollTop = 0;
    })

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐