微信小程序中列表上拉加载的实现方法(附代码)

来源:不言 发布时间:2018-11-01 10:05:10 阅读量:739

本篇文章给大家带来的内容是关于微信小程序中列表上拉加载的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

某个页面,有多个列表,如100行,这时需要实现分页功能,手机端的分页一般都是滑到底部时上拉刷新。

使用scroll-view实现,其bindscrolltolower方法:滚动到底部/右边触发。当触发时发送请求获取新的数据,我写的时候获取的数据很快,我还给它加了个定时器啊哈哈哈,因为我想让showLoading加载弹窗转一转,让用户知道上拉刷新数据。因为没加的时候showLoading一闪而过,感觉体验效果不好。

最后scroll-view使用竖向滚动时,需要给<scroll-view/>一个固定高度(height:93%),再给page设置高度(height:100%),否则bindscrolltolower触发不了

1

2

<scroll-view wx:if="{{isShowList}}" class='scrollHeight' scroll-y="true" bindscrolltolower="getMore" lower-threshold='3'>

</scroll-view>

来一段逻辑的代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

//上拉加载分页

getMore(e){

  var that = this;

  var user = wx.getStorageSync('bizUser');

  wx.showLoading({

    title: '正在加载中',

  });

  setTimeout(function(){

    var pageindex = that.data.curPage;

    var student = that.data.student;

    if (pageindex>=1){

      ++pageindex;

    }

    wx.request({

      url: app.url + '',

      data: {

        schoolId: user.schoolId,

        pageSize: 10,

        curPage:pageindex

      },

      method: 'GET',

      success:function(res){

        if (res.data.data) {

          var studentLength = (res.data.data instanceof Array) ? res.data.data.length : 0;

          for (var i = 0; i < studentLength; i++) {

            //判断计时付或一次性

            if (res.data.data[i].sign_type == 2) {

              res.data.data[i].sign_type = '一次性';

            } else if (res.data.data[i].sign_type == 1) {

              res.data.data[i].sign_type = '计时付';

            } else if (res.data.data[i].sign_type == 3) {

              res.data.data[i].sign_type = '计时付';

            } else if (res.data.data[i].sign_type == 4) {

              res.data.data[i].sign_type = '一次性';

            } else if (res.data.data[i].sign_type = 5) {

              res.data.data[i].sign_type = '一次性'

            }

 

            //数字变中文

            if (res.data.data[i].learn_stage == 1) {

              res.data.data[i].learn_stage = '一';

            } else if (res.data.data[i].learn_stage == 2) {

              res.data.data[i].learn_stage = '二';

            } else if (res.data.data[i].learn_stage == 3) {

              res.data.data[i].learn_stage = '三'

            }

          }

 

          if (studentLength ==10) {

            for (var j = 0; j < studentLength;j++){

              student.push(res.data.data[j]);

            }

            that.setData({

              student: student,

              load: '上拉加载更多..',

              curPage: pageindex

            })

 

 

          } else if (studentLength<10){

            for (var j = 0; j < studentLength; j++) {

              student.push(res.data.data[j]);

            }

            that.setData({

              student: student,

              load: '已经没有更多了..',

              curPage: pageindex

            })

          }

        } else {

          that.setData({

            load: '已经没有更多了'

          })

        }

      }

    })

 

    wx.hideLoading();

 

  },500)

 

},


标签: PHP
分享:
评论:
你还没有登录,请先