瓜熟蒂落会想到监听浏览器滚动条的位置,一旦到达导航栏的位置,就对它进行吸顶.那么问题来了,怎么监听滚动呢?css
这里能够想到两个方法:android
1.监听touchmove事件;ios
2.window.addEventListener('scroll',callback);css3
先说说第一种方法,手指在手机屏幕上滑动就会触发,可是对于绝大多数手机来讲,当咱们手指滑动一段距离以后,即便抬起了手指,网页也会有一段惯性滑动,然而遗憾的是,这段惯性滑动不会触发touchmove,也不会触发touchend事件.这样就可能致使咱们没法及时监听到滚动条的正确位置,从而在第一时间对导航栏进行置顶.web
再说说第二种方法:这种方法的好处在于它可以监听浏览器的惯性滚动,这样咱们能够实时拿到正确的滚动条位置.可是这种方法也有一些弊端,那就是在ios上,浏览器在滚动期间,不会触发callback里面的函数,只有在scroll结束时,才会触发,但android上表现还算正常.因此综上所述,我才用了以下方法实现个人吸顶:浏览器