zoukankan      html  css  js  c++  java
  • 转载:移动端+微信小程序实现,手机端滑动分页代码思路(ajax)

    //一般在PC上我们要分页都是通过上一页和下一页来实现的,手机通过当下滑到一定程度的时候自动加载下一页面
    //实现思路:首先加载部分数据,当下滑到某个元素可见的时候,如果还有数据,则新发送请求,然后追加在当前页面

    一、PC端

    /*
    *<div class='topicBox' id='listBox'>
    *</div>
    */
    //判断元素是否进入可视区域 
    function see(objLiLast) {
        //浏览器可视区域的高度 
        var see = document.documentElement.clientHeight;
        //滚动条滑动的距离 
        var winScroll = $(this).scrollTop();
        //距离浏览器顶部的 
        var lastLisee = $(objLiLast).offset().top;
        return lastLisee < (see + winScroll) ? true : false;
    }
    //预设页码为当前第一页
    var page = 1;
    //获得总页码
    var pageTotal = parseInt($('#allpage').val());
    //是否请求出AJAX的“开关”; 
    var onOff = true;
    $(window).scroll(function () {
    //拖动滚条时,是否发送AJAX的一个“开关” 
    $('.topicBox').each(function () {
    //引用最后一个div 
    var lastLi = $('.topicBox:last');
    //调用是否进入可视区域函数 
    var isSee = see(lastLi);
    if (isSee && onOff && page < pageTotal) {//最底部元素可见,开关开启而且还有下拉
    //$('#loadNext').show(); //显示正在加载图标
    onOff = false;
    $.ajax({
    url: '/GetPageData',
    type: 'GET',
    dataType: 'json',
    data: {
    page: page+1
    },
    asyc: false,
    success: function (result) {
    if (result.status == 'success') {
    var data = result.result;
    for (var i = 0; i < data.length; i++) {
    //to do coding ...
    };
    }
    //$('#loadNext').hide(); //隐藏正在加载
    onOff = true;
    page ++;
    }
    });
    
    }
    });
    });

    二、微信小程序端:wxml

    <scroll-view class="scroll-container" upper-threshold="{{sortPanelDist}}"  scroll-y="true" style="height:{{scrollHeight}}px;" bindscrolltolower="bindDownLoad">
    
    <!-- 上面的scrollHeight参数必须要的,不然没法进行下一步,我这里为了兼容手机屏幕,使用的获取系统自适应高度 -->
    
    <view class="con12"> 
      <block wx:for="{{homeList}}" wx:for-item="homeList" wx:for-index="index"> 
      <navigator url="../home_detail/home_detail?home_id={{homeList.s_id}}">
        <view class="index1-list">
           <image src="{{homeList.pic_url}}" class="indeximg">
           <span class="money">¥{{homeList.price}}</span>
           </image>
           <span class="cunhome-title">西厢房 · {{homeList.vil_name}}--{{homeList.s_title}}</span>
           <view class="describe">
             {{homeList.s_desc}}
            </view>
         </view>
      </navigator>
        </block>
     </view>
    <!-- 上面是循环的数据 -->
    
    </scroll-view>

    js

    var page = 1;
    // 获取数据的方法,具体怎么获取列表数据大家自行发挥
    var GetList = function (that) {
     wx.request({
        url: 'https://m.xxiangfang.com/index.php/Home/Xiaoxxf/home_service',  //民宿预订
        data: {
          page: page
        },
        header: {
          'Content-Type': 'application/json'
        },
        method: 'GET',
        success: function (res) {
          that.setData({
            homeList: res.data
          })
          page++;
        },
        fail: function (res) { },
        complete: function (res) { },
      })
    }
    
    Page({
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        var that = this;
        //缓冲提醒
        wx.showToast({
          title: '加载中',
          icon: 'loading',
          duration: 400
        })
        //获取系统的参数,scrollHeight数值,微信必须要设置style:height才能监听滚动事件
        wx.getSystemInfo({
          success: function (res) {
            console.info(res.windowHeight)
            that.setData({
              scrollHeight: res.windowHeight
            })
          }
        });
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
        var that = this;
        GetList(that);     //页面初次展示调用第一次数据,比如说5条记录
      },
      bindDownLoad: function () {
        //   该方法绑定了页面滑动到底部的事件,下拉一次请求一次数据
        wx.showToast({
          title: '加载中',
          icon: 'loading',
          duration: 400
        })
        var that = this;
        GetList(that);        //页面拉一次,加载一次
      },
    
    })
  • 相关阅读:
    异常介绍
    docker 命令
    acm
    Openfiler能把标准x86/64架构的系统变成一个强大的NAS、SAN存储和IP存储网关
    docker 图解学习
    基于Docker的TensorFlow机器学习框架搭建和实例源码解读
    菜鸟打印控件
    Oracle 12c on Solaris 10 安装文档
    内存对齐小解
    安装oracle 11gr2 rac on solaris
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/6943627.html
Copyright © 2011-2022 走看看