小程序中scroll-view的使用

scroll-view

可滚动视图区域。
这里写图片描述
使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。

动态设置滚动条位置

可以在js中设置滚动条的位置,比如我希望设置为滚动条的高度能够撑满除底部固定按钮外的剩余界面,并在每一次点击按钮之后,往scroll-view中添加内容,并将滚动条可以移到最下方。我是这样设置的:
//wxml页面设置

<scroll-view style="height:{{srollHeight}}px;" scroll-y="true" scroll-top="{{scrollTop}}">
……
</scroll-view>

//js文件

Page({
  data: {
    scrollTop:0,
 srollHeight:300, //随便给的一个初始高度
}})
 onShow: function () {  //在onShow中根据屏幕窗口宽度动态设置scroll-view的高度
   console.log('onShowed')
    var that = this;
    wx.getSystemInfo({
  success: function(res) {
    var height=res.windowHeight-footerpannelheight;   //footerpannelheight为底部组件的高度
   that.setData({
            srollHeight: height
        });
  }
})
 },
  clickEvent :function()  //按钮点击事件,移动滚动条
  {
      // ……   //往scroll-view中添加内容的代码省略;
        that.setData({
             scrollTop: that.data.scrollTop + 1000    //为了移到最下方,所以加一个比较大的值
        });
  },

在这个过程中,我也遇到了几个小问题:
1.在动态设置scroll-view高度的时候,当页面置于tabbar且非首页的时候,通过getSystemInfo得到的windowHeight再减去固定高度得到的值并不准确,貌似tabbar会占用一定的高度,但是小程序中并没有提供tabbar的高度,而页面置于首页或不使用tabbar时则不会出现这个问题。
2.为了移动滚动条到最下方,我的处理是直接加一个固定高度1000,其实更为准确的是加上插入内容的高度,但是因为我插入的内容的高度是不确定的,而小程序中又不支持类似于通过document获得组件元素的方法,无法动态获得插入内容的高度,因此只好采用这个比较笨的方法。

如有高手可以帮我解决这两个问题,欢迎指教,不甚感激。

Bug & Tip

  1. tip: 请勿在 scroll-view 中使用 textarea、map、canvas、video 组件
  2. tip: scroll-into-view 的优先级高于 scroll-top
  3. tip: 在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh
  4. tip: 若要使用下拉刷新,请使用页面的滚动,而不是 scroll-view ,这样也能通过点击顶部状态栏回到页面顶部
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值