微信小程序开发之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
    })
  },
})

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

 

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

 

时间: 2024-10-24 05:24:33

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

微信小程序开发之picker

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

微信小程序开发文档官方版发布

微信公众平台团队喜欢在深夜给人惊喜,这不,微信小程序开发文档昨晚23点半发出了,很多开发者表示要兴奋得睡不着了.和ytkah一起看看小程序文档吧!小程序文档包含:小程序简易教程.小程序框架.小程序组件.小程序API.小程序工具.Q&A 您不会错过这些内容:微信小程序设计指南官方版放出 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志.下载源码1. 获取微信小程

微信小程序开发教程目录

本系列教程是自己在工作中使用到而记录的,没有顺序之分 如有错误之处,请给与指正,也不希望误导了别人 微信小程序开发教程目录 微信小程序之注册和入门 微信小程序之HTTPS请求 微信小程序开发之选项卡 微信小程序开发之picker 微信小程序开发之图片预览 微信小程序开发之模板 微信小程序开发之模板消息 微信小程序之页面路由 微信小程序开发之scroll-view 微信小程序开发之常见BUG 微信小程序之使用本地接口开发 微信小程序开发之普通链接二维码  

微信小程序应用号开发教程!博卡君通宵吐血赶稿

微信应用号(微信公众平台小程序,「应用号」的新称呼)终于来了!开源中国社区的博卡君通宵吐血赶稿写出的微信公众平台应用号开发教程!大家赶紧来学习一下吧 对了,昨天晚间微信小程序开发文档官方版发布了 微信公众平台小程序目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心应用号的最终形态到底是什么样子?怎样将一个「服务号」改造成为「小程序」? 我们暂时以一款简单的第三方工具的实例,来演示一下开发过程吧.(公司的项目保密还不能分享代码和截图.博卡君是边加班边偷偷给大家写教程.感谢「名片盒」团

微信小程序下载工具及调试详解_相关技巧

昨天晚些时候微信团队发布了微信小程序开发者工具.微信小程序开发文档和微信小程序设计指南,全新的开发者工具,集成了开发调试.代码编辑及程序发布等功能,帮助开发者简单和高效地开发微信小程序.以下是官方文档,内含小程序开发者工具下载地址及调试指南. 下载地址:开发者工具0.9.092300版 windows 64版:windows 32版:mac版 为了帮助开发者简单和高效地开发微信小程序,我们推出了全新的开发者工具,集成了开发调试.代码编辑及程序发布等功能. devtools 扫码登录 启动工具时,

使用TypeScript开发微信小程序的方法_C#教程

TypeScript简介: TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发. TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作.TypeScript是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性.

微信小程序把玩(八)view组件

原文:微信小程序把玩(八)view组件 刚看到这个效果的时候还真是和ReactNative的效果一致,属性也基本的一样. view这个组件就是一个视图组件使用起来非常简单. 主要属性: flex-direction: 主要两个特性"row"横向排列"column"纵向排列 justify-content 主轴的对齐方式(如果flex-direction为row则主轴就是水平方向) 可选属性 ('flex-start', 'flex-end', 'center', '

Android程序开发之Listview下拉刷新上拉(滑动分页)加载更多_Android

最近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多. 新浪微博就是使用这种方式的典型. 当用户从网络上读取微博的时候,如果一下子全部加载用户未读的微博这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容.这时候,我们就需要用到另一个功能,那就是listview的分页了,其实这个分页可以做成客户端的分页,也可以做成服务器端的分页(点击加载时,从服务器对应的加载第N页就好了!!!).通过分

Android程序开发之ListView实现横向滚动(带表头与固定列)_Android

问题背景:在做图表展示的时候,ListView可以上下左右滑动,但最左边一列在向右滑动时,保持不变,表头在向下滑动时保持不变. 有用两个ListView实现的,但测试过,好像有些问题 这个例子是通过(ListView + HorizontalScrollView)实现的 效果图:   Activity代码 /** * * 带滑动表头与固定列的ListView */ public class HListActivity extends Activity{ private ListView mLis