轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序 使用view,scroll-view实现上拉加载,下拉刷新

发布者: liuqing | 发布时间: 2018-5-30 20:34| 查看数: 7087| 评论数: 1|帖子模式

作者:王慧永,来自授权地址

一:使用view实现下拉刷新,上拉加载数据

如图,微信小程序实现上拉加载,下拉刷新。代码如下 
js文件代码

  1. // pages/loading/loading.js
  2. var p = 1
  3. var url = "";
  4. var GetList = function (that) {
  5. that.setData({
  6. hidden: false
  7. });
  8. wx.request({
  9. url: url,
  10. data: {
  11. pageSize: 10,
  12. pageNo: p
  13. },
  14. success: function (res) {
  15. var l = that.data.list
  16. for (var i = 0; i < res.data.length; i++) {
  17. l.push(res.data[i])
  18. }
  19. that.setData({
  20. list: l
  21. });
  22. p++;
  23. that.setData({
  24. hidden: true
  25. });
  26. }
  27. });
  28. }
  29. Page({
  30. data: {
  31. list: []
  32. },
  33. onLoad: function (options) {
  34. // 页面初始化 options为页面跳转所带来的参数
  35. var that = this
  36. GetList(that)
  37. },
  38. onPullDownRefresh: function () {
  39. //下拉
  40. console.log("下拉");
  41. p = 1;
  42. this.setData({
  43. list: [],
  44. });
  45. var that = this
  46. GetList(that)
  47. },
  48. onReachBottom: function () {
  49. //上拉
  50. console.log("上拉")
  51. var that = this
  52. GetList(that)
  53. }
  54. })

json文件代码

  1. {
  2. "enablePullDownRefresh": true,
  3. "backgroundTextStyle": "dark"
  4. }

wxml文件代码

  1. <view class="item" wx:for="{{list}}" wx:for-item="item" for:key="item.carrierId">
  2. <image class="img" src=""></image>
  3. <text calss="txt" >{{item.carrierName}}</text>
  4. <text class="txt">{{item.carrierId}}</text>
  5. </view>

wxss文件代码

  1. .img{
  2. border-radius: 50%;
  3. height: 100rpx;
  4. width: 100rpx;
  5. }
  6. .txt{
  7. margin: 10rpx 10rps 10rpx 10rpx;
  8. font-family: "微软雅黑";
  9. font-size: 50rpx;
  10. height: 50rpx;
  11. }

说明:这个接口返回的就是 分页的数据,根据传入的参数,每次返回不同的数据

  1. http://192.168.30.4:8080/gtxcx/carrier/getCarrier.action

二:使用scroll-view实现上拉加载,下拉刷新

如图,使用小程序的scroll-view实现的上拉加载数据,下拉刷新数据,试下代码如下: 
js文件代码:

  1. var url = "";
  2. var page = 1;
  3. var GetList = function (that) {
  4. that.setData({
  5. hidden: false
  6. });
  7. wx.request({
  8. url: url,
  9. data: {
  10. pageSize: 10,
  11. pageNo: page
  12. },
  13. success: function (res) {
  14. var l = that.data.list
  15. for (var i = 0; i < res.data.length; i++) {
  16. l.push(res.data[i])
  17. }
  18. that.setData({
  19. list: l
  20. });
  21. page++;
  22. that.setData({
  23. hidden: true
  24. });
  25. }
  26. });
  27. }
  28. Page({
  29. data: {
  30. hidden: true,
  31. list: [],
  32. scrollTop: 0,
  33. scrollHeight: 0
  34. },
  35. onLoad: function () {
  36. var that = this;
  37. wx.getSystemInfo({
  38. success: function (res) {
  39. console.info(res.windowHeight);
  40. that.setData({
  41. scrollHeight: res.windowHeight
  42. });
  43. }
  44. });
  45. },
  46. onShow: function () {
  47. var that = this;
  48. GetList(that);
  49. },
  50. bindDownLoad: function () {
  51. var that = this;
  52. GetList(that);
  53. },
  54. scroll: function (event) {
  55. this.setData({
  56. scrollTop: event.detail.scrollTop
  57. });
  58. },
  59. refresh: function (event) {
  60. page = 1;
  61. this.setData({
  62. list: [],
  63. scrollTop: 0
  64. });
  65. GetList(this)
  66. },
  67. onPullDownRefresh: function () {
  68. console.log("下拉")
  69. },
  70. onReachBottom: function () {
  71. console.log("上拉");
  72. }
  73. })

json文件代码

  1. {
  2. "navigationBarTitleText": "下拉刷新",
  3. "enablePullDownRefresh": true,
  4. "backgroundTextStyle": "dark"
  5. }

wxml文件代码:

  1. <view class="container">
  2. <scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;"
  3. class="list" bindscrolltolower="bindDownLoad" bindscroll="scroll" bindscrolltoupper="refresh">
  4. <view class="item" wx:for="{{list}}">
  5. <image class="img" src=""></image>
  6. <view class="text">
  7. <text class="title">{{item.carrierName}}</text>
  8. <text class="description">{{item.carrierTelphone}}</text>
  9. <text class="description">{{item.carrierId}}</text>
  10. </view>
  11. </view>
  12. </scroll-view>
  13. <view class="body-view">
  14. <loading hidden="{{hidden}}" bindchange="loadingChange">
  15. 加载中...
  16. </loading>
  17. </view>
  18. </view>

wxss文件代码

  1. .container{
  2. height: 100%;
  3. padding: 20rpx;
  4. }
  5. .item{
  6. display: flex;
  7. margin-bottom: 50rpx;
  8. width:100%;
  9. background:#f0f0f0;
  10. overflow:hidden;
  11. }
  12. .img{
  13. height: 100rpx;
  14. width: 100rpx;
  15. border-radius: 50%;
  16. }
  17. .text{
  18. display: flex;
  19. flex-shrink:1;
  20. flex-grow:1;
  21. padding: 10rpx;
  22. flex-wrap: wrap;
  23. font-size: 50rpx;
  24. }
  25. .title{
  26. font-size: 50rpx;
  27. margin:10rpx 100rpx 10rpx 100rpx;
  28. }
  29. .description{
  30. font-size: 50rpx;
  31. align-self:flex-end;
  32. }

注意,

  1. http://192.168.30.4:8080/gtxcx/carrier/getCarrier.action这个接口就是更具传入的页数,每次返回不同数据。

最新评论

FFF 发表于 2022-6-20 19:33
免费网站名字大全

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表