vue-scroller 页面滚动相关总结

1 下载

npm i vue-scroller

2 引入

import Vue from 'vue'
import VueScroller from 'vue-scroller'
Vue.use(VueScroller)

3 使用

1)添加上拉加载方法和下拉刷新方法

2)加载完成调用 相应的方法结束动画,不然的话会一直显示动画

.wrapper{
    width: 100vw;
    height:88vh!important; 
    margin-top:12vh;
    border: 1px solid darkblue;
}

/**3)css部分 我的解决方案是:

① 添加一个class给他一个固定的高度,我使用的是vh,也就是说这个滚动列表的高度是固定的又是响应式的,不需要动态计算他的高度了。我的理解是,所有的滚动区域都需要在外层给他一个固定高度的容器,这样她才能滚动。

② 里面的内容不要设置高度。

③ 很奇怪的是如果不设置高这个scroller 组件总是充满整个窗口,

如果设置了高,那么他也会覆盖上面的 header 和tapbar 部分,不知道为什么,难道是用的是绝对定位吗?

我的解决方案是设置一个margin-top,因为用的是vh ,所以每一个组件的高度都是固定的,窗口高度是100vh,所以

很容易计算出margin-top

**/

 

<scroller class="wrapper" ref="wrapper"
          :on-refresh="refresh"
          :on-infinite="loadMore">
            <!--  list -->
          
</scroller>
 refresh(){
        let that = this;
        console.log("刷新");
        setTimeout(function(){
           console.log(that.$refs.wrapper)
           that.$refs.wrapper.finishPullToRefresh();
        },2000)
     },

     loadMore(){
      /**
       * 这里的原理是,如果滑到最后了,那么就会触发上拉加载,
       * 如果你结束了上拉加载,然而下面并没有增加数据,也就是仍然滑到了最底下了,这个时候会再次触发
       * 上拉加载更多。
       * **/
        let that = this;
        console.log("加载更多");
        setTimeout(()=>{
         //   如果插入一个true ,那么地面会显示 ‘没有数据了’,也不会再次触发
           that.$refs.wrapper.finishInfinite(true);
           console.log("加载完毕")
        },2000)

     }

 

 

 

 

 

4 api

Scroller component attributes:

Attr. NameDescriptionRequiredDefault Value
onRefreshpull to refresh callbackN-
onInfiniteinfinite loading callbackN-
onInfiniteinfinite loading callbackN-
refreshTexttips of pull-to-refreshN下拉刷新
noDataTexttips of no-more-data when infinite-loading finishedN没有更多数据
widthscroller container widthN100%
heightscroller container heightN100%
snappingenable snapping modeNfalse
snappingWidthsnapping widthN100 (stand for 100px)
snappingHeightsnapping heightN100
refreshLayerColortext color of pull-to-refresh layerN#AAA
loadingLayerColortext color of infinite-loading layerN#AAA
minContentHeightmin content height (px) of scroll-contentN0

Scroller vm instance methods:

  • resize() resize scroller content (deprecated, cause the scroller's content resizes self automatically)
  • triggerPullToRefresh() start pull-to-refresh manually
  • finishPullToRefresh() stop pull-to-refresh
  • finishInfinite(isNoMoreData :Boolean) stop infinite-loading
  • scrollTo(x:Integer, y:Integer, animate:Boolean) scroll to a position in scroller content
  • scrollBy(x:Integer, y:Integer, animate:Boolean) scroll by a position in scroller content
  • getPosition :Object get current position of scroller content
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值