在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

微信小程序完成分頁下拉加載的案例代碼

微信小程序完成分頁下拉加載的案例代碼

更新時間:2025-10-10 文章作者:未知 信息來源:網絡 閱讀次數:

微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
轉眼間我們教你微信小程序系列已經有十節系列課程了,每天的工作壓力繁重,小女子也不知道自己還能堅持這樣的系列教程多久。只希望每篇教程真的對大家有幫助。這節課我們要介紹的就是如何實現分頁的下拉加載,我們先來看效果圖

微信小程序實現分頁下拉加載的實例代碼

<view class="copyright">
    <view class="copyright_item">CopyRight:All Right Reserved</view>
    <view class="copyright_item">原創作者:51小程序</view>
    <view class="copyright_item">微信小程序開發者社區</view>
    <view class="copyright_item">HTML51.COM</view>
    <view class="copyright_item"><image class="img" src="../copyright/image/logo.png"/></view>
    <view class="goto_counter"><button type="default" bindtap="goto_counter">點擊進入下拉加載演示頁面</button></view>
</view>

當用戶打開一個頁面時,假設后臺數據量龐大時,一次性地返回所有數據給客戶端,頁面的打開速度就會有所下降,而且用戶只看上面的內容而不需要看后面的內容時,也浪費用戶流量,基于優化的角度來考慮,后臺不要一次性返回所有數據,當用戶有需要再往下翻的時候,再加載更加數據出來。
業務需求:
列表滾動到底部時,繼續往上拉,加載更多內容
必備參數:
(1)pageindex: 1 //第幾次加載
(2)callbackcount: 15 //需要返回數據的個數
其他參數:
根據接口的所需參數
實現原理:
當第一次訪問接口時,傳遞2個必備參數(第1次加載,需要返回數據的個數為15個),和其他參數(需要搜索的字符串)給后臺,后臺返回第一次數據過來。在請求成功的的回調函數中,判斷返回的數據是否>0,是,則取出數據,渲染視圖層,并把“上拉加載”顯示在列表底部;否,則沒有數據可取,并把“沒有更多”顯示在列表底部,同時把“上拉加載”隱藏掉。
當用戶已經滾動到列表底部(這里使用到小程序提供的scroll-view組件的bindscrolltolower事件),觸發bindscrolltolower事件,參數pageindex+1,再把2個必備參數(第2次加載,需要返回數據的個數為15個)和其他參數(需要搜索的字符串)給后臺,后臺把其余的數據返回給前臺,前臺在原來數據的基礎上添加數據


主要的頁面結果如下:
1.index.wxml

<view class="search"> 
  <view class="search-bar"> 
    <view class="search-wrap"> 
        <icon type="search" size="16" class="icon-search" /> 
        <input type="text" placeholder="請輸入搜索內容" class="search-input" name="searchKeyword" bindinput="bindKeywordInput" value="{{searchKeyword}}" /> 
    </view> 
    <view class="search-cancel" bindtap="keywordSearch">搜索</view> 
  </view> 
  <view class="search-result"> 
    <scroll-view scroll-y="true" bindscrolltolower="searchScrollLower"> 
      <view class="result-item" wx:for="{{searchSongList}}" wx:key="unique"  data-data="{{item}}" > 
        <view class="icon{{item.isonly=='0' ? ' nocopyright' : ''}}"></view> 
        <text class="title">{{item.songname}}</text> 
        <view class="subtitle"> 
          <text wx:for="{{item.singer}}" wx:key="unique">{{item.name}}</text> 
        </view> 
      </view> 
      <view class="loading" hidden="{{!searchLoading}}">正在載入更多...</view> 
      <view class="loading complete" hidden="{{!searchLoadingComplete}}">已加載全部</view> 
    </scroll-view>   
  </view> 
</view>

2.index.wxss

page{ 
  display: flex;  
  flex-direction: column;  
  height: 100%;  
} 
   
/*搜索*/ 
.search{ 
  flex: auto;  
  display: flex;  
  flex-direction: column;  
  background: #fff;  
} 
.search-bar{ 
  flex: none;  
  display: flex;  
  align-items: center;  
  justify-content: space-between;  
  padding: 20rpx;  
  background: #f4f4f4;  
} 
.search-wrap{ 
  position: relative;  
  flex: auto;  
  display: flex;  
  align-items: center;  
  height: 80rpx;  
  padding: 0 20rpx;  
  background: #fff;  
  border-radius: 6rpx;  
} 
.search-wrap .icon-search{ 
  margin-right: 10rpx;  
} 
.search-wrap .search-input{ 
  flex: auto;  
  font-size: 28rpx;  
} 
.search-cancel{ 
  padding: 0 20rpx;  
  font-size: 28rpx;  
} 
   
/*搜索結果*/ 
.search-result{ 
  flex: auto;  
  position: relative;  
} 
.search-result scroll-view{ 
  position: absolute;  
  bottom: 0;  
  left: 0;  
  right: 0;  
  top: 0;  
} 
.result-item{ 
  position: relative;  
  display: flex;  
  flex-direction: column;  
  padding: 20rpx 0 20rpx 110rpx;  
  overflow: hidden;  
  border-bottom: 2rpx solid #e5e5e5;  
} 
   
.result-item .media{ 
  position: absolute;  
  left: 16rpx;  
  top: 16rpx;  
  width: 80rpx;  
  height: 80rpx;  
  border-radius: 999rpx;  
} 
.result-item .title, 
.result-item .subtitle{ 
  overflow: hidden;  
  text-overflow: ellipsis;  
  white-space: nowrap;  
  line-height: 36rpx;  
} 
.result-item .title{ 
  margin-bottom: 4rpx;  
  color: #000;  
} 
.result-item .subtitle{ 
  color: #808080;  
  font-size: 24rpx;  
} 
.result-item:first-child .subtitle text{ 
  margin-right: 20rpx;  
} 
.result-item:not(:first-child) .subtitle text:not(:first-child):before{ 
  content: '/';  
  margin: 0 8rpx;  
} 
.loading{ 
  padding: 10rpx;  
  text-align: center;  
} 
.loading:before{ 
  display: inline-block;  
  margin-right: 5rpx;  
  vertical-align: middle;  
  content: '';  
  width: 40rpx;  
  height: 40rpx;  
  background: url(../index/images/icon-loading.png) no-repeat;  
  background-size: contain;  
  animation: rotate 1s linear infinite;  
} 
.loading.complete:before{ 
  display: none;  
}

3.index.js

var util = require('../../utils/util.js') 
Page({ 
  data: { 
    searchKeyword: '',  //需要搜索的字符  
    searchSongList: [], //放置返回數據的數組  
    isFromSearch: true,   // 用于判斷searchSongList數組是不是空數組,默認true,空的數組  
    searchPageNum: 1,   // 設置加載的第幾次,默認是第一次  
    callbackcount: 15,      //返回數據的個數  
    searchLoading: false, //"上拉加載"的變量,默認false,隱藏  
    searchLoadingComplete: false  //“沒有數據”的變量,默認false,隱藏  
  }, 
  //輸入框事件,每輸入一個字符,就會觸發一次  
  bindKeywordInput: function(e){ 
    console.log("輸入框事件") 
    this.setData({ 
      searchKeyword: e.detail.value 
    }) 
  }, 
  //搜索,訪問網絡  
  fetchSearchList: function(){ 
    let that = this;  
    let searchKeyword = that.data.searchKeyword,//輸入框字符串作為參數  
        searchPageNum = that.data.searchPageNum,//把第幾次加載次數作為參數  
        callbackcount =that.data.callbackcount; //返回數據的個數  
    //訪問網絡  
    util.getSearchMusic(searchKeyword, searchPageNum,callbackcount, function(data){ 
      console.log(data) 
      //判斷是否有數據,有則取數據  
      if(data.data.song.curnum != 0){ 
        let searchList = [];  
        //如果isFromSearch是true從data中取出數據,否則先從原來的數據繼續添加  
        that.data.isFromSearch ? searchList=data.data.song.list : searchList=that.data.searchSongList.concat(data.data.song.list) 
        that.setData({ 
          searchSongList: searchList, //獲取數據數組  
          zhida: data.data.zhida, //存放歌手屬性的對象  
          searchLoading: true   //把"上拉加載"的變量設為false,顯示  
        });  
      //沒有數據了,把“沒有數據”顯示,把“上拉加載”隱藏  
      }else{ 
        that.setData({ 
          searchLoadingComplete: true, //把“沒有數據”設為true,顯示  
          searchLoading: false  //把"上拉加載"的變量設為false,隱藏  
        });  
      } 
    }) 
  }, 
  //點擊搜索按鈕,觸發事件  
  keywordSearch: function(e){ 
    this.setData({   
      searchPageNum: 1,   //第一次加載,設置1 
      searchSongList:[],  //放置返回數據的數組,設為空  
      isFromSearch: true,  //第一次加載,設置true 
      searchLoading: true,  //把"上拉加載"的變量設為true,顯示  
      searchLoadingComplete:false //把“沒有數據”設為false,隱藏  
    }) 
    this.fetchSearchList();  
  }, 
  //滾動到底部觸發事件  
  searchScrollLower: function(){ 
    let that = this;  
    if(that.data.searchLoading && !that.data.searchLoadingComplete){ 
      that.setData({ 
        searchPageNum: that.data.searchPageNum+1,  //每次觸發上拉事件,把searchPageNum+1 
        isFromSearch: false  //觸發到上拉事件,把isFromSearch設為為false 
      });  
      that.fetchSearchList();  
    } 
  } 
})

以上就是微信小程序實現分頁下拉加載的實例代碼的詳細內容,更多請關注php中文網其它相關文章!


小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • xxx中文字幕| 日本不卡一区二区在线观看| 在线观看av免费观看| 国产自偷自偷免费一区| 精品无码一区二区三区在线| 日本三日本三级少妇三级66| 亚洲精品视频导航| 看欧美ab黄色大片视频免费| 99色精品视频| www.xxx亚洲| 成人综合久久网| 污污视频网站在线| 免费网站在线观看黄| 激情成人在线观看| 97在线免费视频观看| 久久久久久av无码免费网站下载| 中国黄色录像片| aa视频在线播放| 久久无码高潮喷水| 999在线免费视频| 亚洲 欧洲 日韩| 国产免费一区二区视频| 国产一区二区三区精彩视频| 99精品人妻少妇一区二区| 99久久国产宗和精品1上映| 在线观看免费黄网站| 在线播放免费视频| 国产免费裸体视频| aa免费在线观看| 99国产精品久久久久久| 大地资源网在线观看免费官网| 成人国产一区二区三区| 欧美在线观看成人| 九九九九九伊人| 2019日韩中文字幕mv| 久草资源站在线观看| 亚洲一区二区图片| 免费在线激情视频| 国产成年人在线观看| 奇米精品一区二区三区| 粉色视频免费看| 激情伊人五月天| 一区中文字幕在线观看| 成人免费观看视频在线观看| 51自拍视频在线观看| 韩国中文字幕av| jizzjizz国产精品喷水| 日本一二三区在线| 色七七在线观看| 夜夜添无码一区二区三区| 国产精品自拍视频在线| 国产av无码专区亚洲精品| 男同互操gay射视频在线看| 久久久精品麻豆| 成人av一级片| 黄色成人在线看| 国产美女作爱全过程免费视频| 爱爱爱爱免费视频| 亚洲欧美激情网| 国产免费人做人爱午夜视频| 国产精品视频网站在线观看| 亚洲免费av网| 久久久福利影院| 久热精品在线播放| 国产aaa一级片| 看av免费毛片手机播放| 国产av天堂无码一区二区三区| 男女视频在线观看网站| 成人av毛片在线观看| 国产色视频在线播放| 亚洲国产精品三区| www.桃色.com| 欧美xxxx吸乳| 免费在线黄网站| 亚洲熟妇无码另类久久久| 国产美女主播在线| 日本在线视频www| 一区二区三区韩国| 色一情一区二区三区| 一个色综合久久| 中文字幕综合在线观看| 天堂а√在线中文在线| 奇米精品一区二区三区| 久久精品99国产| 免费av不卡在线| 亚洲一级片免费观看| 精品国产一区二区三区在线| 人人妻人人做人人爽| 成人免费观看cn| 波多野结衣作品集| 国内外成人激情免费视频| 毛片av在线播放| 爱情岛论坛成人| 国产精品99久久久久久大便| 男人添女人荫蒂免费视频| aa免费在线观看| 亚洲成人动漫在线| 成人黄色片视频| 秋霞在线一区二区| 久久久噜噜噜www成人网| 午夜免费看视频| 亚洲色成人www永久在线观看 | 91大神免费观看| 亚洲精品无码国产| 美女在线视频一区二区 | 欧美一级片免费播放| 久久久国产欧美| bt天堂新版中文在线地址| 欧美精品aaaa| 免费拍拍拍网站| 日本一区二区免费高清视频| 日韩精品一区在线视频| 中国黄色片一级| 成人黄色片视频| 91九色丨porny丨国产jk| 手机av在线免费| 精品久久久久久久无码| 免费在线看黄色片| 色婷婷综合在线观看| 五月婷婷狠狠操| 成人免费观看cn| 青草网在线观看| 99精品一区二区三区的区别| 欧美午夜aaaaaa免费视频| 欧美 日韩 亚洲 一区| 日本黄xxxxxxxxx100| 自拍一级黄色片| 久久成年人网站| 欧美精品久久久久久久久25p| 免费看的黄色大片| 国产超级av在线| 内射国产内射夫妻免费频道| 天天做天天躁天天躁| 9色视频在线观看| 少妇高潮流白浆| 国产精品久久成人免费观看| 一级片黄色免费| 超碰97免费观看| 国产高清不卡无码视频| 欧美一级黄色录像片| 免费的一级黄色片| 久久久久免费看黄a片app| 黄色国产一级视频| 99热在线这里只有精品| 日本一区二区黄色| 成人在线激情网| 中文字幕日本最新乱码视频| 欧美日韩黄色一级片| 亚洲人成色77777| 中文字幕精品一区二区三区在线| 国产三级国产精品国产专区50| 在线观看国产一级片| 91麻豆天美传媒在线| 国产aaa免费视频| 青青在线视频免费| 在线观看av免费观看| 老子影院午夜伦不卡大全| 无码精品a∨在线观看中文| 亚洲一级片免费| 99re99热| 国语对白做受xxxxx在线中国| 日韩大片一区二区| 992tv快乐视频| 超碰97人人射妻| 极品粉嫩美女露脸啪啪| 国产乱子伦精品无码专区| 国产真实乱子伦| 国产奶头好大揉着好爽视频| 丰满人妻中伦妇伦精品app| 在线观看免费av网址| 国产精品自拍合集| 日韩肉感妇bbwbbwbbw| 欧美在线观看视频免费| 黄色在线视频网| 日韩精品视频在线观看视频| 亚洲黄色a v| 人妻av中文系列| 91精品一区二区三区四区| 日韩中文字幕三区| 欧美 亚洲 视频| jizz18女人| av免费网站观看| 久久久久久人妻一区二区三区| 免费成人黄色大片| 亚洲乱码中文字幕久久孕妇黑人| 日韩av影视大全| 日本www.色| 国产理论在线播放| 国产主播在线看| 99久久免费观看| 久久久久久久久影视| 日韩成人精品视频在线观看| 国产青青在线视频| 亚洲色成人www永久在线观看 | 欧美 日韩精品| 成年人网站国产| 精品一区二区三区无码视频| 手机成人av在线| 婷婷视频在线播放| 自拍偷拍视频在线|