微信小程序开发之scroll-view
本文主要介绍通过scroll-view实现回至顶部,如下效果
一、页面代码
顶部的工具栏放一个查找按钮,滚动区域实现分页,目的就是为了点击上一页\下一页时,自动回到顶部。
scroll-view必须指定scroll-y属性和该区域的高度
<view class="page"> <view class="swiper-tab border-top"> <view> <text class='text-primary'>查找</text> </view> </view> <view class="weui-panel weui-panel_access mt0 no_border"> <scroll-view scroll-y style="height:{{scrollHeight}}px;" scroll-top="{{scrollTop}}"> <view class="weui-panel__bd"> <block wx:for="{{listdata}}" wx:key="{{item.Id}}"> <navigator url="/pages/test/Show?id={{item.Id}}"> <view class="weui-media-box weui-media-box_text"> <view class="weui-media-box__desc">{{item.Desc}}</view> </view> </navigator> </block> </view> <view class="weui-panel__ft"> <view class="weui-cell weui-cell_access weui-cell_link"> <view class="weui-cell__bd col-4 text-center" bindtap="prevPage">上一页</view> <view class="weui-cell__bd col-4 text-center"> <picker bindchange='changePage' class="picker" value="{{currentPage-1}}" range="{{pageArray}}"> <view> 第{{pageArray[currentPage-1]}}页 </view> </picker> </view> <view class="weui-cell__bd col-4 text-center" bindtap="nextPage">下一页</view> </view> </view> </scroll-view> </view> </view>
二、脚本代码
scrollHeight是内容区域的高度,点击上一页\下一页时,回到顶部
Page({ data: { limit: 10, currentPage: 1, total: 0, pageArray: [], scrollTop: 0, scrollHeight: 0 }, onLoad: function (options) { var that =this; wx.getSystemInfo({ success: function (res) { that.setData({ scrollHeight: res.windowHeight - 42 }); } }); this.loadMainData(); }, loadMainData: function () { this.tapMove(); //加载数据 }, onPullDownRefresh: function () { this.prevPage(); }, setPages: function (count) { var pages = new Array(); for (var i = 0; i < count; i++) { pages.push(i + 1); } this.setData({ pageArray: pages }); }, prevPage: function () { if (this.data.currentPage > 1) { this.setData({ currentPage: this.data.currentPage - 1 }); this.loadMainData(); } else { msg.showToast({ title: '当前是第一页', icon: 'info' }); } }, nextPage: function () { if (this.data.currentPage < (this.data.total / this.data.limit)) { this.setData({ currentPage: this.data.currentPage + 1 }); this.tapMove(); this.loadMainData(); } else { msg.showToast({ title: '当前是最后一页', icon: 'info' }); } }, changePage: function (e) { var page = parseInt(e.detail.value) + 1; this.setData({ currentPage: page }); this.loadMainData(); }, tapMove: function (e) { this.setData({ scrollTop:0 }) }, })
最近比较忙,就简单记录下
欢迎阅读本系列文章:微信小程序开发教程目录
作者:心存善念
本文地址:https://www.cnblogs.com/xcsn/p/7106657.html
欢迎转载,请在明显位置给出出处及链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2013-07-02 VS2010引用App_Code下的类文件问题解决方法
2013-07-02 支付宝