• 小程序scrollview的使用


    <scroll-view scroll-y="true" style="height: {{height+'px'}}" bindscrolltolower="box1">
        这里用来存放数据...
    </scroll-view>

    bindscrolltolower 这是一个事件 当滚动到底部时会去触发
    scroll-y="true" scroll-x="true" 设置x轴滚动还是y轴
    height 这是视区高度这里看应用需求 我是使用的wx.getSystemInfoSync().windowHeight来获取当前页面的高度
    之前做滚动的时候使用的onReachBottom但总不符合自己的需求
    因为微信小程序是页面的 比如做分类的时候同一个页面 不同的内容滚动(tab切换这种)如果场景是tab切换的话使用onReachBottom一个tab切面滚动了另外的页面也会随之滚动

    data: {
        curren:0,// 选中的样式
        current: 1,
        page:10,
        list:[],
        height:'',// 文件视口的高度
        flag:true, // 控制请求
        len:'' //总数据长度
      },
    onShow:function(){
        this.setData({
          current:1,
          list:[]
        })
        this.getData()
        var h = wx.getSystemInfoSync().windowHeight;
        this.setData({
          height:h-50
        })
      },
    // 获取数据
    getData()
    {
      wx.showLoading({
        title: '数据加载中',
      })
      this.setData({
        flag:false
      })
      app.request({
        url:'order/getUserOrders',
        data:{
          "current": this.data.current, // 页码
          "page": this.data.page, // 每页显示的数量
          "params":
          {
            "status": this.data.curren // 状态
          }
         },
        method:'POST',
        success:(res)=>{
          wx.hideLoading()
          console.log(res)
          this.data.current++
          this.setData({
            list:this.data.list.concat(res.data.list),
            len:res.data.total,
            current:this.data.current,
            flag:true
          })
        }
      })
    },
    // 滚动到底部触发事件
    box1()
      {
        if(this.data.flag && this.data.list.length!=this.data.len)
        {
          this.getData()
        }
        if(this.data.list.length==this.data.len) 
        {
          wx.showLoading({
            title: '数据加载完毕',
          })
          setTimeout(function () {
            wx.hideLoading()
          }, 1000)
        }
      },

    这样就实现了相同的页面不相同的模块滚动到底部加载更多数据 (分页)
    利用flag来控制向后台请求数据 减少服务器的压力

    最终效果

    参考---https://blog.csdn.net/sslcsq/article/details/108294604

  • 相关阅读:
    ios专题 - OCUnit
    ios专题 - APP设计流程
    ios专题 - openSSL
    iOS开发获取缓存文件的大小并清除缓存
    支付宝“订单交易失败 ALI64” 报错的原因
    先登录 在跳转到tabBar
    首页 导航栏隐藏 下一级页面显示,pop回来遇到的问题
    invalid nib registered for identifier (重用符)
    iOS开发集成微信支付
    NSdata 与 NSString,Byte数组,UIImage 的相互转换
  • 原文地址:https://www.cnblogs.com/pwindy/p/16305766.html
Copyright © 2020-2023  润新知