轉載:移動端+微信小程序實現,手機端滑動分頁代碼思路(ajax)

//通常在PC上咱們要分頁都是經過上一頁和下一頁來實現的,手機經過當下滑到必定程度的時候自動加載下一頁面
//實現思路:首先加載部分數據,當下滑到某個元素可見的時候,若是還有數據,則新發送請求,而後追加在當前頁面php

1、PC端ajax

/*
*<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 ++;
}
});

}
});
});

 

2、微信小程序端:wxmljson

<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);        //頁面拉一次,加載一次
  },

})
相關文章
相關標籤/搜索