欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序 scroll-view組件實現(xiàn)列表頁實例代碼

 更新時間:2021年04月05日 00:13:56   作者:愛打羽球的碼猿  
這篇文章主要介紹了微信小程序 scroll-view組件實現(xiàn)列表頁實例代碼的相關(guān)資料,scroll-view組件介紹scroll-view是微信小程序提供的可滾動視圖組件,其主要作用是可以用來做手機(jī)端經(jīng)常會看到的上拉加載 ,需要的朋友可以參考下

scroll-view組件介紹

scroll-view是微信小程序提供的可滾動視圖組件,其主要作用是可以用來做手機(jī)端經(jīng)常會看到的上拉加載下拉刷新列表頁!下面就以<搖出微笑>為例來講解一下這個組件的使用吧!

為app導(dǎo)入新page頁面

首先需要為我們的小程序?qū)胄碌膒age頁面,項目根目錄打開app.json這個項目配置文件在里面的pages數(shù)組添加"pages/allJoke/allJoke"然后設(shè)置底部導(dǎo)航在"tabBar"的列表項("list")添加:

 {
  "text": "列表",
  "pagePath": "pages/allJoke/allJoke",
  "iconPath": "images/note.png",
  "selectedIconPath": "images/noteHL.png"
 },

如果大家要了解具體配置的含義可以參考小程序配置文檔這里不再贅述!

json配置頁

接下來就是我們新建page的配置頁了,在page目錄下新建一個目錄如alljoke,再在這個目錄下新建一個allJoke.json,復(fù)制下面代碼到這個文件里面:

{
 "navigationBarTitleText": "笑話集錦",
 "enablePullDownRefresh": true
}

因為我們待會做下拉刷新時需要用到小程序提供的onPullDownRefresh方法,所以在配置項里面必須開啟enablePullDownRefresh.另外一個選項是頁頂標(biāo)題大家隨意設(shè)置也可以不用設(shè)置!

wxml視圖頁

好輪到視圖頁了,同樣的在alljoke目錄下新建一個alljoke.wxml頁面.wxml是小程序自創(chuàng)的一個視圖頁文檔類型,其寫法類似html,對于前端來說入門沒有難度.需要詳細(xì)了解的可以去閱讀wxml文檔.同樣復(fù)制以下代碼到alljoke.wxml里面

<view>
 <view>
 <scroll-view class="scroll" scroll-top="{{scrollTop}}" style="height:580px;" scroll-y="true" bindscroll="scrll" bindscrolltolower="loadMore">
  <view class="block" wx:for="{{listLi}}" wx:for-item="item">
  <text>{{item.text}}</text>
  </view> 
 </scroll-view>
 </view>
 <view class="top" hidden="{{hidden}}" catchtap="goTop">⇧</view>
</view>

大家可以看到,我們的主角scroll-view也在這里隆重登場了!帶過來的是一長串配置,就讓我來為大家講一下這些配置的作用吧!

配置項 作用
scroll-top 設(shè)置豎向滾動條的位置,要注意一點如果設(shè)置的值沒有變化,組件不會渲染!
scroll-y 允許縱向滾動
bindscroll 滾動時觸發(fā)的回調(diào)函數(shù)
bindscrolltolower 滾動到底部觸發(fā)的事件

用到的選項都列出來了,還有一點需要大家特別注意的:

使用豎向滾動條時必須為組件設(shè)置一個固定高度就是上面代碼style里面設(shè)置的高!切記切記!

更多資料請閱讀微信小程序scroll-view組件文檔

wxss樣式

同樣在alljoke目錄下面新建allJoke.wxss文件,小程序的樣式和傳統(tǒng)css差不多大家可以根據(jù)自己喜好自行設(shè)計,這里我簡單做了一下樣式比較丑大家將就著用吧.(題外話:受不了的自己動手豐衣足食)

.block {
 border: 8px solid #71b471;
 margin: 20rpx 20rpx;
 padding: 10rpx;
 background-color: #fff;
 border-radius: 20rpx;
 text-align: center;
}
.top {
 width: 100rpx;
 height: 100rpx;
 line-height: 100rpx;
 background-color: #fff;
 position: fixed;
 bottom: 40rpx;
 right: 20rpx;
 text-align: center;
 font-size: 50rpx;
 opacity: .8;
 border-radius: 50%;
 border: 1px solid #fff; 
}

小程序文檔中關(guān)于樣式的介紹

邏輯部分

來到最后也是最重要的邏輯部分了!老規(guī)矩alljoke目錄下新建allJoke.js文件,先貼代碼再慢慢講解:

Page({
 data:{
 listLi:[],
 page:1,
 scrollTop:0,
 done: false,
 hidden: true
 },
 onLoad:function(options){
 this.getList(1);
 },

 onPullDownRefresh: function(){
 wx.showToast({
  title: '加載中',
  icon: 'loading'
 });
 this.getList(1,true);
 },

 getList: function(page, stopPull){
 var that = this
 wx.request({
  url: 'https://wechat.sparklog.com/jokes',
  data: {
  page: page,
  per: '20'
  },
  method: 'GET', 
  success: function(res){
  if(page===1){
   that.setData({
   page: page+1,
   listLi: res.data,
   done: false
   })
   if(stopPull){
   wx.stopPullDownRefresh()   
   }
  }else{
   if(res.data<20){
   that.setData({
    page: page+1,
    listLi: that.data.listLi.concat(res.data),
    done: true
   }) 
   }else{
   that.setData({
    page: page+1,
    listLi: that.data.listLi.concat(res.data)
   }) 
   } 
  }
  },
 })
 },

 loadMore: function(){
 var done = this.data.done;
 if(done){
  return
 }else{
  wx.showToast({
  title: '加載中',
  icon: 'loading',
  duration: 500
  });
  var page = this.data.page;
  this.getList(page)
 }
 },

 scrll: function(e){
 var scrollTop = e.detail.scrollTop
 if(scrollTop>600){
  this.setData({
  scrollTop: 1,
  hidden: false  
  })
 }else{
  this.setData({
  scrollTop: 1,
  hidden: true 
  });
 }
 },

 goTop: function(){
 this.setData({
  scrollTop:0,
  hidden: true 
 })
 }
})

大家可以看到首先我們需要用page()函數(shù)注冊頁面,然后在data里面定義一些初始化數(shù)據(jù).onLoad是這個頁面的生命周期函數(shù),頁面加載時會調(diào)用到它.我們在頁面加載時調(diào)用了自定義的getList函數(shù).這個函數(shù)接收兩個參數(shù),第一個參數(shù)是要加載的頁面,第二個參數(shù)是布爾值,用來判斷是下拉刷新調(diào)用的這個函數(shù),還是頁面加載時調(diào)用的這個函數(shù)!接下來onPullDownRefresh是小程序提供的下拉刷新函數(shù),里面wx.showToast顯示消息提示框,用來提示用戶正在加載,loadMore是滾動到底部觸發(fā)的事件.函數(shù)里面會檢查是否已經(jīng)加載了全部列表項,如果已經(jīng)加載了全部列表項會return掉,如果數(shù)據(jù)庫還有列表項,上拉到底部加載下一頁!scrll函數(shù)是滾動時觸發(fā)的函數(shù),可以看到這個函數(shù)會判斷滾動條位置是否大于六百,如果大于六百顯示點擊直達(dá)底部的按鈕,如果小于六百隱藏直達(dá)頂部的按鈕.同時會更新滾動條位置的參數(shù).剛剛在講wxml時已經(jīng)講過scroll-view組件設(shè)置豎向滾動條位置scroll-top設(shè)置項時如果參數(shù)一樣,頁面不會重新渲染,我們就是利用了這一點,如果要到達(dá)頂部,位置必定是'0',滾動時觸發(fā)scrll函數(shù),我們把位置信息設(shè)置為'1',因為滾動函數(shù)會反復(fù)觸發(fā),所以此時頁面是不會渲染的.也就是說由于位置設(shè)置參數(shù)都是設(shè)置為'1'不變,導(dǎo)致scroll-top設(shè)置項不會生效為goTop函數(shù)的直達(dá)頂部(把參數(shù)變?yōu)?0'提供機(jī)會).最后就是直達(dá)頂部按鈕的函數(shù)了,可以看到它是把位置信息變?yōu)?0',參數(shù)變化scroll-top設(shè)置生效,頁面直達(dá)頂部.最后再通過改變hidden這個參數(shù)把自己(直達(dá)頂部按鈕)給隱藏掉了!

結(jié)尾

ok,通過上面的步驟我們終于實現(xiàn)了下拉刷新上拉加載的列表頁功能了,從上面我們可以看到微信提供的接口和api還是挺全面的,要實現(xiàn)一個功能總體來說要比原生js實現(xiàn)要簡單一些!

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 微信小程序 兩種為對象屬性賦值的方式詳解

    微信小程序 兩種為對象屬性賦值的方式詳解

    這篇文章主要介紹了微信小程序 兩種為對象屬性賦值的方式詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 詳解使用yeoman打造自己的項目腳手架

    詳解使用yeoman打造自己的項目腳手架

    這篇文章主要為大家介紹了使用yeoman打造自己的項目腳手架實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 微信小程序 picker-view 組件詳解及簡單實例

    微信小程序 picker-view 組件詳解及簡單實例

    這篇文章主要介紹了微信小程序 picker-view 組件詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • JavaScript數(shù)據(jù)類型對函數(shù)式編程的影響示例解析

    JavaScript數(shù)據(jù)類型對函數(shù)式編程的影響示例解析

    這篇文章主要為大家介紹了JavaScript數(shù)據(jù)類型對函數(shù)式編程的影響示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • JavaScript數(shù)組去重方案

    JavaScript數(shù)組去重方案

    這篇文章主要介紹了JS數(shù)組方案,先總結(jié)一下我們數(shù)組的方法:pop、push、shift、unshift、slice、splice、sort、reverse、concat、join、indexOf、lastIndexOf、map、forEach,下面文章將詳細(xì)對他們做個詳細(xì)介紹,需要的朋友可以參考一下
    2021-09-09
  • 停止編寫 API函數(shù)原因示例分析

    停止編寫 API函數(shù)原因示例分析

    這篇文章主要為大家介紹了停止編寫API函數(shù)的原因及示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • TypeScript?泛型推斷實現(xiàn)示例詳解

    TypeScript?泛型推斷實現(xiàn)示例詳解

    這篇文章主要為大家介紹了TypeScript?泛型推斷實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • js 實現(xiàn)Material UI點擊漣漪效果示例

    js 實現(xiàn)Material UI點擊漣漪效果示例

    這篇文章主要為大家介紹了js 實現(xiàn)Material UI點擊漣漪效果示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 利用JavaScript寫一個簡單計算器

    利用JavaScript寫一個簡單計算器

    這篇文章主要介紹了?如何利用JavaScript寫一個簡單計算器,利用JavaScript寫一個簡單計算器算是一個簡單的小練習(xí)吧,需要的小伙伴可以參考一下<BR>
    2021-11-11
  • 微信小程序 數(shù)據(jù)綁定及運算的簡單實例

    微信小程序 數(shù)據(jù)綁定及運算的簡單實例

    這篇文章主要介紹了微信小程序 數(shù)據(jù)綁定的簡單實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評論