素材牛VIP会员

jQuery上拉加载更多

 浏览:641次-  评论:0次-  发布时间:2017-07-17
    Html
    Css
    Js
↑上面代码改变,会自动显示代码结果
jQuery调用版本:2.0.0
素材牛VIP永久特权
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
代码描述:纯Js,jQuery 上拉, 下拉加载更多

注:请在移动端查看上拉, 下拉加载更多效果

前言:

由于,不管是在PC端,还是在移动端,上拉加载更多这个功能可以说是少不了的,尤其是在移动端。

在写这个上拉加载更多这个功能之前,我也用过一些比如 iscroll.js之类的等等插件。 但是,在使用过程中发现一系列问题。比如:首先至少得引入相应的CSS文件和JS文件吧,其次在你使用时必须按照它规定的格式去写,不然就不行。还有在1个页面中有多个上拉加载更多功能, 想改样式也很不方便等等。

所以,就想在不用插件的情况下,自己写一个上拉加载更多的功能,和大家一起分享。如有更好解决办法的朋友,欢迎指导!

原理:

根据布局,给window, 或者某个DIV元素加个scroll事件。当用户上滑时,判断滚动条的位置是否到达底部,如果到达底部,则执行加载下一页方法。

问题:

在写的过程中发现一个问题,就是判断滚动条的位置是否到达底部时 不能用等于 == (因为滚动条在滚动时不一定会刚对等于底部的位置), 所以用 >= 大于或等于,可是 >=会使上拉加载方法执行很多次,从而导致一下子加载很多页的问题,如果你所加载的数据时有编号顺序的,那么会使编号顺序混乱,比如先加载第3页,再加载第2页(第1页没问题)等等。

解决办法:

在JS代码中 分别以滚动加载方法1 和 滚动加载方法2 列出了对应的解决办法。

思路1:当滚动条的位置到达底部时,再用一个判断来决定是否加载数据,其是就是一个开关,这个开关默认是false, 只有当数据加载完成时,才设为true。

思路2:当滚动条的位置到达底部时,延时执行加载数据方法(并在延时执行之前,先清空之前的定时器)。

使用说明:

1、在JS代码中已经有非常详细的注释和说明。

2、该功能(上拉加载更多)除jQuery以外,没有使用基他任何插件。

讨论这个常用代码(0)回答他人问题或分享心得会奖励牛币

〒_〒 居然一个评论都没有……

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的积分余额:0 已下载次数:641
所需牛币:5 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)