微信小程序开发之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
})
},
})
最近比较忙,就简单记录下
欢迎阅读本系列文章:微信小程序开发教程目录
微信小程序开发之scroll-view的更多相关文章
- 微信小程序开发之picker
一.绑定简单数组 通过bindChange控制index,使得当前选择值发生改变 示例1 data: { Data: ['A','B'], Index: 0, }, <picker class= ...
- 微信小程序开发之picker选择器组件用法
picker组件时一个从底部弹起的可滚动的选择器(嵌入页面滚动器组件picker-view查看https://mp.weixin.qq.com/debug/wxadoc/dev/component/p ...
- 微信小程序开发之formId使用(模板消息)
基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...
- 微信小程序开发之https从无到有
本篇不讲什么是https,什么是SSL,什么是nginx 想了解这些的请绕道,相信有很多优秀的文章会告诉你. 本篇要讲的在最短的时间内,让你的网站从http升级到https. 开始教程前再说一句:ht ...
- 微信小程序开发之https服务器搭建三步曲
本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...
- 微信小程序开发之http到https的转化
小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...
- 微信小程序开发之IOS/Android兼容坑(持续更新)
一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解 ...
- 微信小程序开发之tab导航栏
实现功能: 点击不同的tab导航,筛选数据 UI: js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"], //count ...
- 微信小程序开发之animation动画实现
1. 创建动画实例 wx.createAnimation(OBJECT) 创建一个动画实例animation.调用实例的方法来描述动画.最后通过动画实例的export方法导出动画数据传递给组件的ani ...
随机推荐
- Web 动画帧率(FPS)计算
我们知道,动画其实是由一帧一帧的图像构成的.有 Web 动画那么就会存在该动画在播放运行时的帧率.而帧率在不同设备不同情况下又是不一样的. 有的时候,一些复杂或者重要动画,我们需要实时监控它们的帧率, ...
- Vux配置指南
流程 Vux是Vue.js的一个ui库,官网在这里,官方文档的配置指南侧重于技术的罗列,我这里简化一下Vux的配置流程. 1. 安装vux npm install vux --save 2. 安装le ...
- android应用集成google登录
集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录: 1,android 运行版本4.0及更新版本 2,android 设 ...
- 读《淘宝技术这十年》 总结下web架构的发展
关键词就两 分布式 缓存 分布式 数据库,应用服务器等的多节点部署,数据库的读写分离,剥离文件系统 缓存 数据缓存 静态页面缓存 php时代 最初LAMP起步 并将数据库做读写分离,拆分为主库+从库 ...
- hdu 1885 Key Task(bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1885 再贴一个链接http://blog.csdn.net/u013081425/article/details ...
- 基于lucene.net 和ICTCLAS2014的站内搜索的实现1
Lucene.net是一个搜索引擎的框架,它自身并不能实现搜索.须要我们自己在当中实现索引的建立,索引的查找.全部这些都是依据它自身提供的API来实现.Lucene.net本身是基于java的,可是经 ...
- 阿里云部署Docker(4)----容器的使用
通过上一节的学习,我们知道怎样执行docker容器,我们执行了一个普通的,一个后台的,我们还学习了几个指令: docker ps - Lists containers. docker logs - S ...
- UI - Cocoa Touch框架
Cocoa Touch 层 Cocoa Touch层包括创建 iOS应用程序所需的关键框架. 上至实现应用程序可视界面,下至与高级系统服务交互.都须要该层技术提供底层基础.在开发应用程序的时候.请尽可 ...
- Vue深度学习(1)
Hello World 现在就让我们来写第一个vue.js的实例.如下代码: html代码: <div id="demo"> {{ message }} </di ...
- eclipse中JDK、struts2、Spring、Hibernate源码查看
一般,我们导入的只有jar文件,所以看不到对于的java文件,如果需要看源码,必须下载对应开源包的源码,一般都是zip文件,比如Spring,下载spring-framework-2.0.8-with ...