哪位J神可以给详细的说一下上拉刷新下拉加载的原理吗!看了好久的资料了,还是模棱两可的状态! 求干货啊! 代码我有GitHub上一大堆!求上拉和下拉原理! 谢谢!
上拉的话是scrollTop+sclientHeight==整个div的高度吗? 那下拉是根据什么呢?
是下拉刷新,触底加载吧?无非这几点:
下拉刷新
触底加载
上拉和下拉原理是一样的
上拉刷新,下拉加载。先根据scroll事件的event来判断滚动方向,上拉判断scrollTop的值是否为0来刷新,下拉判断scrollTop的值为body的高度减去滚动元素的高度
对于 $.scrollTop() ,默认情况下假设是 $.scrollTop(100) 的位置,那么高度是 100 ,那么当发现位置在 $.scrollTop() < 100 的时候,就知道是上拉, $.scrollTop() > 200 的时候,是下拉了。是否刷新随便你。
$.scrollTop()
$.scrollTop(100)
100
$.scrollTop() < 100
$.scrollTop() > 200
上拉刷新,看页面最下方的div有没有出现在可视区内。
这个功能还是有点复杂的,移动端的话首先你要监听盒子的touch事件:touchstart,touchmove,touchend;touchstart时记录滑动初始值x,y坐标,然后在touchmove事件中去动态的根据当前x,y坐标判断上拉下拉,再根据你自己设定的零界点(一般是下拉到顶部,上拉到底部)的时候,调用你的刷新方法和加载方法就可以了。web端其实也差不多,只是监听的不是touch事件,而是监听滚动条的滚动距离了,距离顶部多少触发刷新,距离底部多少触发加载