Maison > Applet WeChat > Développement WeChat > le corps du texte

Explication détaillée de la façon dont la vue défilante complète les pages de liste

Y2J
Libérer: 2018-05-14 09:12:54
original
3017 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur l'exemple de code du composant scroll-view de l'applet WeChat pour implémenter la page de liste. Introduction au composant scroll-view scroll-view est un composant de vue déroulant fourni par l'applet WeChat. .Sa fonction principale est d'utiliser Pour effectuer le chargement pull-up que l'on voit souvent sur les téléphones mobiles, les amis qui en ont besoin peuvent se référer à l'introduction du

composant de vue par défilement

.

la vue défilante est fournie par l'applet WeChat. Le composant de vue défilante, sa fonction principale est d'effectuer le pull-up pour charger et le pull-down pour actualiser la page de liste qui est souvent vue sur les téléphones mobiles. Prenons comme exemple pour expliquer le composant Utilisez !

Importer une nouvelle page pour l'application

Nous devons d'abord importer une nouvelle page pour notre mini programme et ouvrez app.json dans le répertoire racine du projet. Ce projet fichier de configuration ajoute "pages/allJoke/allJoke" dans le tableau pages puis définit le bas navigation dans l'élément de liste de "tabBar" ("list") ajouter :

 {
   "text": "列表",
   "pagePath": "pages/allJoke/allJoke",
   "iconPath": "images/note.png",
   "selectedIconPath": "images/noteHL.png"
  },
Copier après la connexion

Si vous souhaitez connaître la signification de la configuration spécifique, vous pouvez référez-vous au document Configuration du mini programme qui ne sera pas décrit ici !

Page de configuration json

L'étape suivante est la page de configuration de notre nouvelle page. Créez un nouveau répertoire tel que alljoke sous le répertoire de la page, puis créez un nouveau allJoke.json sous ce répertoire. Copiez le code suivant dans ce fichier :

{
  "navigationBarTitleText": "笑话集锦",
  "enablePullDownRefresh": true
}
Copier après la connexion

Parce que nous devons utiliser. la méthode onPullDownRefresh fournie par le mini-programme plus tard lors de l'actualisation déroulante, activatePullDownRefresh doit être activée dans l'élément de configuration. L'autre option est le titre supérieur de la page, que vous pouvez définir à volonté. Vous n'avez pas besoin de définir.

page de visualisation wxml

C'est au tour de la page de visualisation De même, créez une nouvelle page alljoke.wxml dans le répertoire alljoke. -Type de document de page d'affichage créé, son écriture est similaire au HTML, et il n'est pas difficile pour le front-end de démarrer. Si vous avez besoin d'en savoir plus, vous pouvez lire le document wxml. Copiez également le code suivant dans 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>
Copier après la connexion

Comme vous pouvez le voir, notre vue défilante protagoniste fait également une grande apparition ici ! Ce que j'ai apporté ici est une longue liste de configurations, laissez-moi vous parler des fonctions de ces configurations !

Élément de configurationFonction
scroll-topDéfinissez la position de la barre de défilement verticale. Veuillez noter que si la valeur définie ne change pas, le composant ne sera pas rendu !
scroll-yAutoriser le défilement vertical
bindscrollDéclenché lors du défilement < a href="http://www. php.cn/code/8530.html" target="_blank">Fonction de rappel
配置项作用
scroll-top设置竖向滚动条的位置,要注意一点如果设置的值没有变化,组件不会渲染!
scroll-y允许纵向滚动
bindscroll滚动时触发的回调函数
bindscrolltolower滚动到底部触发的事件
bindscrolltolower Faites défiler vers le bas déclenché Événement<🎜>

用到的选项都列出来了,还有一点需要大家特别注意的:

使用竖向滚动条时必须为组件设置一个固定高度就是上面代码style里面设置的高!切记切记!

更多资料请阅读微信小程序scroll-view组件文档

wxss样式

同样在alljoke目录下面新建allJoke.wxss文件,小程序的样式和传统css差不多大家可以根据自己喜好自行设计,这里我简单做了一下样式比较丑大家将就着用吧.(题外话:受不了的自己动手丰衣足食)

.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; 
}
Copier après la connexion

小程序文档中关于样式的介绍

逻辑部分

来到最后也是最重要的逻辑部分了!老规矩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: &#39;加载中&#39;,
   icon: &#39;loading&#39;
  });
  this.getList(1,true);
 },

 getList: function(page, stopPull){
  var that = this
  wx.request({
   url: &#39;https://wechat.sparklog.com/jokes&#39;,
   data: {
    page: page,
    per: &#39;20&#39;
   },
   method: &#39;GET&#39;, 
   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: &#39;加载中&#39;,
    icon: &#39;loading&#39;,
    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 
  })
 }
})
Copier après la connexion

大家可以看到首先我们需要用page()函数注册页面,然后在data里面定义一些初始化数据.onLoad是这个页面的生命周期函数,页面加载时会调用到它.我们在页面加载时调用了自定义的getList函数.这个函数接收两个参数,第一个参数是要加载的页面,第二个参数是布尔值,用来判断是下拉刷新调用的这个函数,还是页面加载时调用的这个函数!接下来onPullDownRefresh是小程序提供的下拉刷新函数,里面wx.showToast显示消息提示框,用来提示用户正在加载,loadMore是滚动到底部触发的事件.函数里面会检查是否已经加载了全部列表项,如果已经加载了全部列表项会return掉,如果数据库还有列表项,上拉到底部加载下一页!scrll函数是滚动时触发的函数,可以看到这个函数会判断滚动条位置是否大于六百,如果大于六百显示点击直达底部的按钮,如果小于六百隐藏直达顶部的按钮.同时会更新滚动条位置的参数.刚刚在讲wxml时已经讲过scroll-view组件设置竖向滚动条位置scroll-top设置项时如果参数一样,页面不会重新渲染,我们就是利用了这一点,如果要到达顶部,位置必定是'0',滚动时触发scrll函数,我们把位置信息设置为'1',因为滚动函数会反复触发,所以此时页面是不会渲染的.也就是说由于位置设置参数都是设置为'1'不变,导致scroll-top设置项不会生效为goTop函数的直达顶部(把参数变为'0'提供机会).最后就是直达顶部按钮的函数了,可以看到它是把位置信息变为'0',参数变化scroll-top设置生效,页面直达顶部.最后再通过改变hidden这个参数把自己(直达顶部按钮)给隐藏掉了!

结尾

ok,通过上面的步骤我们终于实现了下拉刷新上拉加载的列表页功能了,从上面我们可以看到微信提供的接口api还是挺全面的,要实现一个功能总体来说要比原生js实现要简单一些!

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. 微信公众号平台源码下载

3. 阿狸子订单系统源码下载

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!