首页 > 编程语言 >微信小程序实现无限滚动列表

微信小程序实现无限滚动列表

时间:2023-04-13 19:32:54浏览次数:39  
标签:img .. avatarUrl 程序实现 微信 列表 webp reward nickName

微信小程序实现无限滚动列表

问题背景

客户端日常开发和学习过程中,无限滚动列表是一种很常见的场景,比如用户获奖名单等,本文将介绍如何在微信小程序中实现无限自动滚动列表。

问题分析

页面文件目录结构如下: image.png

问题解决

话不多说,直接上代码 (1)index.js文件,代码如下:

// pages/healdata/healthydata.ts
Page({
 
  /**
   * 页面的初始数据
   */
  data:{
    bgColor: "#fbeeed",

    aa:[
        {
          nickName:"wang1",
          reward:"2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wang2",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wang3",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan4",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan5",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan6",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan7",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan8",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wan9",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
        {
          nickName: "wang",
          reward: "2",
          avatarUrl:"../../static/img/u=30401.webp.jpg"
        },
      ],
  },
 
  /**
   * 生命周期函数--监听页面加载
   */
  onl oad() {
    
  },
 
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
 
  },
 
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
 
    wx.hideHomeButton()
  },
 
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
 
  },
 
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
 
  },
 
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
 
  },
 
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
 
  },
 
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
 
  }
})

(2)index.wxml文件,代码如下:

<!-- 无限自动滚动列表 -->
<view class='contentBottom'>
    <view class='BottomFirst'>
      <text id='0' data-id='0'>获奖名单</text>
    </view>
    <swiper class="tab-right" style='background:{{bgColor}};' vertical="true" autoplay="true" circular="true" interval="2000" display-multiple-items='4'>
      <view class="right-item">
        <block wx:for-index="idx" wx:for='{{aa}}'>
          <swiper-item>
            <view class='content-item'>
              <image src='{{item.avatarUrl}}' class='avater'></image>
              <text class='name'>{{item.nickName}}</text>
              <text class='wawa'>获得奖金{{item.reward}}元</text>
            </view>
          </swiper-item>
        </block> 
      </view>
    </swiper>
  </view>

(3)index.wxss文件,代码如下:

/* 底部滚动列表 */
.contentBottom {
  padding: 60rpx 0;
  margin-top: 140rpx;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #f8e1da;
}
.BottomFirst {
  width: 90%;
  display: flex;
  justify-content: space-around;
  border: 1px solid #663a83;
  box-sizing: border-box;
  margin: 0 auto;
}
.BottomFirst text {
  width: 100%;
  text-align: center;
  font-size: 30rpx;
  color: #663a83;
  line-height: 60rpx;
  border-right: 1px solid #663a83;
  box-sizing: border-box;
}
.BottomFirst text:nth-child(1){
  border: none;
}
.tab-right {
  width: 90%;
  margin: 20rpx auto;
  height: 405rpx;
}
.right-item {
  padding: 0 20rpx;
  background: #fbeeed;
  height: 100%;
  width: 100%;
  box-sizing: border-box;
}
.content-item {
  height: 100rpx;
  border-bottom: 1px solid #ede1d4;
  width: 95%;
}
.avater {
  height: 50rpx;
  width: 50rpx;
  border-radius: 100rpx;
  margin-top: 25rpx;
  float: left;
}
.name {
  font-size: 26rpx;
  float: left;
  line-height: 100rpx;
  color: #b0aaa9;
  margin-left: 20rpx;
  width: 40%;
  height:100%;
  overflow: hidden;
}
.wawa {
  font-size: 26rpx;
  float: right;
  line-height: 100rpx;
  color: #999;
}

运行结果如下: 1681383535791.gif

问题总结

本文介绍了如何在微信小程序中实现无限自动滚动列表,有兴趣的同学可以进一步深入研究。

标签:img,..,avatarUrl,程序实现,微信,列表,webp,reward,nickName
From: https://blog.51cto.com/baorant24/6188322

相关文章

  • vue3微信公众号商城项目实战系列(1)开发环境准备
    项目忙完,这次上新,写一个前端系列,采用vue3来开发一个微信公众号商城。前言:1.微信公众号商城本质也是一个网站,由一个个网页组成,只不过这些网页运行在手机端,能响应手指的点击、长按、拖拽等操作。2.既然是网页,当然可以用3件套(js+html+css)来写,但象vue这样的前端框架比3件套更高效......
  • 微信小程序实现tab切换和数据列表
    微信小程序实现tab切换和数据列表问题背景上篇文章介绍了微信小程序实现tab切换的一种方案(参考https://blog.51cto.com/baorant24/6188157),感觉代码不是很精简,本文再用一个demo介绍微信小程序如何实现tab切换和数据列表。问题分析微信小程序对应页面文件结构如下:问题解决话......
  • 6、Markdown 列表语法
    Markdown列表语法可以将多个条目组织成有序或无序列表。有序列表要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点。数字不必按数学顺序排列,但是列表应当以数字1起始。Markdown语法HTML预览效果1.Firstitem<br>2.Seconditem<br>3.Thirditem<br>......
  • 微信小程序中target和currentTarget的区别
    微信小程序中target和currentTarget的区别<viewclass="outer-view"bindtap="outerHandler">​<buttontype="primary">按钮</button></view>点击内部按钮时,点击事件会通过冒泡的方式,向外扩散,触发view的tap事件,此时target指向触发事件源头,就是button,而c......
  • 微信小程序当input框中的值改变时获取input框的值
    微信小程序当input框中的值改变时获取input框的值wxml文件,input框值改变触发inputHandler函数<inputstyle="border:1pxsolid;"type="text"bindinput="inputHandler"/>js文件inputHandler(e){console.log(e.detail.value)}......
  • 微信小程序中rpx
    rpx是为了解决微信小程序屏幕宽度自适应问题产生的尺寸单位,是微信小程序独有的尺寸单位,rpx(responsivepixel):可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素,1rpx=0.5px=1物理像素。引......
  • 微信小程序嵌套的webview页面实现导航,可跳转高德百度等app
    需求:微信小程序中使用webview嵌套了h5页面,h5页面中有经纬度,需要实现唤醒高德app。实现思路:此处h5未配置wxSDK,无法直接使用openLocation,所以将经纬度传给小程序,map页面为跳转中间页,再实现打开地图页面。h5://高德地图导航constaMapNavigate=(address,lng,lat)=>{......
  • 微信小程序云开发中的command简介
    微信小程序云开发(WeChatMiniProgramCloudDevelopment)是微信官方推出的一种简化小程序开发的方案。它提供了一个完整的后端云服务,支持数据库、存储、云函数等功能。在云开发中,Command是一个重要的概念,主要用于操作数据库。Command是数据库命令的构造器,它用于构造复杂的数据......
  • 微信小程序打开pdf文件,并支持保存分享等操作
    微信小程序直接下载文件时,保存到的路径为缓存路径tempxxx,如果需要查找文件就很麻烦,那我们可以先在小程序中预览文件,再执行后续操作,代码如下://方法constdownload=(type)=>{const{url='',name}=type;if(!url)return;console.log('uuuu',url,nam......
  • 微信小程序获取用户位置 getLocation
    首先在app.config.json中配置exportdefaultdefineAppConfig({pages:[],permission:{"scope.userLocation":{"desc":"你的位置信息将用于小程序位置接口的效果展示"}},})方法调用:constgetLocation=()=>{Taro.getLocation({......