本文主要介绍通过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
})
},
})

最近比较忙,就简单记录下

欢迎阅读本系列文章:微信小程序开发教程目录

微信小程序开发之scroll-view的更多相关文章

  1. 微信小程序开发之picker

    一.绑定简单数组 通过bindChange控制index,使得当前选择值发生改变 示例1 data: { Data: ['A','B'], Index: 0, }, <picker class= ...

  2. 微信小程序开发之picker选择器组件用法

    picker组件时一个从底部弹起的可滚动的选择器(嵌入页面滚动器组件picker-view查看https://mp.weixin.qq.com/debug/wxadoc/dev/component/p ...

  3. 微信小程序开发之formId使用(模板消息)

    基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...

  4. 微信小程序开发之https从无到有

    本篇不讲什么是https,什么是SSL,什么是nginx 想了解这些的请绕道,相信有很多优秀的文章会告诉你. 本篇要讲的在最短的时间内,让你的网站从http升级到https. 开始教程前再说一句:ht ...

  5. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  6. 微信小程序开发之http到https的转化

    小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...

  7. 微信小程序开发之IOS/Android兼容坑(持续更新)

    一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new  Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解 ...

  8. 微信小程序开发之tab导航栏

    实现功能: 点击不同的tab导航,筛选数据 UI:   js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"],    //count ...

  9. 微信小程序开发之animation动画实现

    1. 创建动画实例 wx.createAnimation(OBJECT) 创建一个动画实例animation.调用实例的方法来描述动画.最后通过动画实例的export方法导出动画数据传递给组件的ani ...

随机推荐

  1. iOS生成Bundle包及使用

    什么是Bundle文件? 简单理解,就是资源文件包.我们将许多图片.XIB.文本文件组织在一起,打包成一个Bundle文件.方便在其他项目中引用包内的资源. Bundle文件的特点? Bundle是静 ...

  2. (二)—Linux远程连接与常用命令

    要学linux ,一定得用命令界面的,怎么也得是shell语言,用就最难最原始的,用的人都是专家,历史最少也得30年,不管有三七二十一上来就敲ls ,先看看当前目录都有什么.一口专业的linux范儿, ...

  3. 我这样减少了26.5M Java内存!

    WeTest 导读 历时五天的内存优化已经结束,这里总结一下这几天都做了什么,有哪些收获.优化了,或可以优化的地方都有哪些.(因为很多事还没做,有些结论需要一定样本量才能断定,所以叫一期)一期优化减少 ...

  4. vue-cli 安装失败Failed to download repo vuejs-templates/webapck-simple: Response code 404 (Not Found)

    新学习vue的萌新们经常会遇到各种各样的坑.例如上面这个报错.这个一般是命令行面板写错单词导致. 正确:vue init webpack-simple .(注意"."点,指当前目录 ...

  5. JAVA设计模式之:命令模式

    *通常情况下:行为请求者与实现者通常呈现一种高度耦合状态.有时要对行为进行变更处理处理.高度耦合方式就显得不合适. * 将行为请求者与行为实现者解耦,将一组行为抽象为对象.实现二者之间的松耦合. 这就 ...

  6. 用KMP算法实现strStr()

    strStr()函数的用途是在一个字符串S中寻找某个字串P第一次出现的位置.并返回其下标,找不到时返回-1.最简单的办法就是找出S全部的子串和P进行比較,然而这种方法比較低效.假设我们从S的下标0和P ...

  7. 关于windows phone 8.1系统手机对html5触摸事件的支持情况

    近日购入一部微软Lumia 640手机,目的主要就是为了测试年中开发完成的响应式移动web项目,同时也为了将来升级win10 mobile系统.由于我们的项目目前只考虑支持IOS与Android系统, ...

  8. Linux小记 — Ubuntu自动化配置

    前言 工欲善其事,必先利其器.经过多次的重复配置ubuntu开发坏境,我终于决定花点时间总结一下,并将其写成一个自动化配置脚本.服务器实例:ubuntu 16.04,技术栈:shell,python. ...

  9. python与redis交互

    爬虫抓来的数据根据实际情况需要存入不同数据库,今天分享一下自己把数据存入redis数据库的经验,有需要的童鞋拿走不谢. 1.环境: Mac osx + python2. 2.需要安装的python包 ...

  10. 自学Zabbix3.5.5-监控项item-User parameters(自定义key)

    为什么要自定义KEY,即User parameters功能 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabb ...