Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移动端上拉加载和下拉刷新的vue插件

移动端上拉加载和下拉刷新的vue插件

原创
作者头像
一墨编程学习
发布于 2018-10-22 11:05:16
发布于 2018-10-22 11:05:16
5K0
举报

做一个简单的移动端展示项目,后台分页后前端加载,实现上拉加载下一页,找了下,还是用这个mescroll.js插件好一点

1.npm安装

npm install --save mescroll.js //不要使用cnpm安装

导入(在哪个页面使用,则在哪个页面导入(这里的话,我使用全局导入会出现问题,若有错,还请大家指出,暂时想到的就是局部引入)):

代码语言:txt
复制

import MescrollVue from ‘mescroll.js/mescroll.vue’

代码语言:txt
复制

注册组件:

代码语言:txt
复制

components: {

代码语言:txt
AI代码解释
复制
MescrollVue // 注册mescroll组件

},

代码语言:txt
复制

template使用

代码语言:txt
复制

<mescroll-vue ref="mescroll" :down="mescrollDown" :up="mescrollUp" @init="mescrollInit" class="scrollView"></mescroll-vue>

代码语言:txt
复制

2.data里进行相关配置

代码语言:txt
复制

data () {

return {

代码语言:txt
AI代码解释
复制
mescroll: null, // mescroll实例对象
代码语言:txt
AI代码解释
复制
mescrollDown:{}, //下拉刷新的配置. (如果下拉刷新和上拉加载处理的逻辑是一样的,则mescrollDown可不用写了)
代码语言:txt
AI代码解释
复制
mescrollUp: { // 上拉加载的配置.
代码语言:txt
AI代码解释
复制
    callback: this.upCallback, // 上拉回调,此处简写; 相当于 callback: function(page, mescroll) { }
代码语言:txt
AI代码解释
复制
    //以下是一些常用的配置,当然不写也可以的.
代码语言:txt
AI代码解释
复制
    page: {
代码语言:txt
AI代码解释
复制
       num: 0, //当前页 默认0,回调之前会加1; 即callback(page)会从1开始
代码语言:txt
AI代码解释
复制
       size: 10 //每页数据条数,默认10
代码语言:txt
AI代码解释
复制
    },
代码语言:txt
AI代码解释
复制
    noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看
代码语言:txt
AI代码解释
复制
    toTop: {
代码语言:txt
AI代码解释
复制
        //回到顶部按钮
代码语言:txt
AI代码解释
复制
        src: "./static/mescroll/mescroll-totop.png", //图片路径,默认null,支持网络图
代码语言:txt
AI代码解释
复制
        offset: 1000 //列表滚动1000px才显示回到顶部按钮
代码语言:txt
AI代码解释
复制
    },
代码语言:txt
AI代码解释
复制
    htmlContent: '<p class="downwarp-progress"></p><p class="downwarp-tip">下拉刷新 </p>', //布局内容
代码语言:txt
AI代码解释
复制
    empty: {
代码语言:txt
AI代码解释
复制
       //列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
代码语言:txt
AI代码解释
复制
       warpId: "xxid", //父布局的id (1.3.5版本支持传入dom元素)
代码语言:txt
AI代码解释
复制
       icon: "./static/mescroll/mescroll-empty.png", //图标,默认null,支持网络图
代码语言:txt
AI代码解释
复制
       tip: "暂无相关数据~" //提示
代码语言:txt
AI代码解释
复制
    }

},

articleList: [] // 列表数据

}

},

beforeRouteEnter (to, from, next) { // 如果没有配置回到顶部按钮或isBounce,则beforeRouteEnter不用写

next(vm => {

代码语言:txt
AI代码解释
复制
  vm.$refs.mescroll.beforeRouteEnter() // 进入路由时,滚动到原来的列表位置,恢复回到顶部按钮和isBounce的配置

})

},

beforeRouteLeave (to, from, next) { // 如果没有配置回到顶部按钮或isBounce,则beforeRouteLeave不用写

this.$refs.mescroll.beforeRouteLeave() // 退出路由时,记录列表滚动的位置,隐藏回到顶部按钮和isBounce的配置

next()

},

methods: {

mescrollInit(mescroll) {

代码语言:txt
AI代码解释
复制
 this.mescroll = mescroll;

},

upCallback(page, mescroll) {

代码语言:txt
AI代码解释
复制
this.$Request({
代码语言:txt
AI代码解释
复制
   url: "",
代码语言:txt
AI代码解释
复制
   method: "get",
代码语言:txt
AI代码解释
复制
   data: {
代码语言:txt
AI代码解释
复制
     page: page.num
代码语言:txt
AI代码解释
复制
   },
代码语言:txt
AI代码解释
复制
   success: res => {
代码语言:txt
AI代码解释
复制
     if (res.status == 1) {
代码语言:txt
AI代码解释
复制
       let data = page.num == 1 ? [] : this.articleList;
代码语言:txt
AI代码解释
复制
       data.push(...res.result.data);
代码语言:txt
AI代码解释
复制
       this.articleList = data;
代码语言:txt
AI代码解释
复制
       // 数据渲染成功后,隐藏下拉刷新的状态
代码语言:txt
AI代码解释
复制
       this.$nextTick(() => {
代码语言:txt
AI代码解释
复制
          mescroll.endSuccess(res.result.data.length);
代码语言:txt
AI代码解释
复制
       });
代码语言:txt
AI代码解释
复制
     }
代码语言:txt
AI代码解释
复制
   }
代码语言:txt
AI代码解释
复制
});

}

}

}

代码语言:txt
复制

3.style样式

代码语言:txt
复制

style

.mescroll {

代码语言:txt
AI代码解释
复制
position: fixed;
代码语言:txt
AI代码解释
复制
padding-bottom: 1rem;
代码语言:txt
AI代码解释
复制
top: 2px;
代码语言:txt
AI代码解释
复制
bottom: 0;
代码语言:txt
AI代码解释
复制
height: auto;

}

代码语言:txt
复制

具体的配置可以参考:mescroll配置

4.加载完成后

可以在data中的mescrollUp项中进行底部没有更多数据时的提示信息,'END'及'加载中...'这些内容可以自己设置

代码语言:txt
复制

htmlLoading: '<p class="upwarp-progress mescroll-rotate"></p><p class="upwarp-tip">加载中..</p>', //上拉加载中的布局

htmlNodata: '<p class="upwarp-nodata">-- END --</p>', //无数据的布局

代码语言:txt
复制

可以查看源码进行设置: mescroll源码(GitHub)

5.scroll属性在ios手机上回出现卡顿问题

在进行滚动的这个容器样式中添加这个属性:

代码语言:txt
复制

-webkit-overflow-scrolling:touch;

代码语言:txt
复制

填加了这个兼容会导致定位为position:fixed的失去效果,使用position:absolute可以解决

这里推荐一下我的前端学习交流群:784783012,里面都是学习前端的,如果你想制作酷炫的网页,想学习编程。自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
这是我见过最牛逼的滑动加载框架
在手机端实现下拉刷新和下拉加载是最常见不过的需求了。今天大师兄就给大家分享一个非常精致的js框架:mescroll.
程序员老鱼
2022/12/02
2.2K0
移动端下拉刷新上拉加载-mescroll.js插件
最近无意间看到有这么一个上拉刷新下拉加载的插件 —— mescroll.js,个人感觉挺好用的,官网地址是:http://www.mescroll.com 然后我就看了一下文档,简单的写了一个小demo记录下来,因为没有过多需要解释说明的,所以直接贴出代码。 1、下载mescroll.js插件。 在页面中引入如下两个文件:   mescroll.min.css   mescroll.min.js 2、代码 <!DOCTYPE html> <html lang="en"> <head> <meta
用户1174387
2018/01/17
9.4K0
移动端下拉刷新上拉加载-mescroll.js插件
微信小程序之上拉加载与下拉刷新
在移动端,随着手指不断向上滑动,当内容将要到达屏幕底部的时候,页面会随之不断的加载后续内容,直到没有新内容为止(我们是有底线的-o-),我们称之为上拉加载,从技术角度来说,也可以称之为触底加载。
一斤代码
2018/08/21
4.5K1
微信小程序之上拉加载与下拉刷新
vue 的上拉加载,下拉刷新(基于better-scrol)
我先吐槽下,这个vue 的上拉刷新前几次都是有现成的框架,来做的,这个better-scroll的我是真的一开始没有看懂,可能是自己太笨了吧,不过 写这个的真的是大神,很厉害,个人项目做的这么厉害,666附上地址
我乃小神神
2019/03/20
2.7K0
vue 的上拉加载,下拉刷新(基于better-scrol)
Flutter中实现下拉刷新与上拉加载更多
其基本的实现方法是在该组件添加onRefresh事件,当用户下拉刷新时会触发该事件,在该事件中可以用调用一个延时任务Future.delayed( ),在延时任务的回调中重新请求数据即可。
越陌度阡
2021/01/13
3.7K0
移动端下拉刷新和上拉加载实现
最近在做移动端开发,移动端的性能不如 PC 端,屏幕页没有 PC 大,需要我们优化的东西很多;在工作中我所做的移动端小页面,无一例外的都是将网页嵌入到安卓或者 IOS 里面去。
sunseekers
2019/08/09
1.8K0
OpenHarmony环境下可用的下拉刷新、上拉加载组件【PullToRefresh】
其中List组件需要设置edgeEffect属性为(EdgeEffect.None)
小帅聊鸿蒙
2024/09/18
2820
OpenHarmony环境下可用的下拉刷新、上拉加载组件【PullToRefresh】
小程序 下拉刷新 上拉加载
至此,一个简单的下拉刷新上拉加载基本搞定了。巧用微信的各种Api,就很舒服。 继续扩展的话: 1.updateDom那里下拉刷新是简单的清空重新加载,其实可以进行数组比较插入最新记录; 2.出错提示没加; 3.可以使用腾讯开源框架Wepy这种现代化的类Vue框架进行组件化开发。
从今若
2019/09/19
1.6K0
Flutter 中的下拉刷新和上拉加载
在Flutter的官方SDK中给我们提供了下拉刷新的组件RefreshIndicator,但是没有提供上拉分页加载更多的组件。不过不用担心,在Flutter的ListView组件中,有一个ScrollController属性,它就是专门用来控制ListView滑动事件,在这里我们可以根据ListView的位置来判断是否滑动到了底部来做加载更多的处理。
拉维
2019/09/05
4.4K0
微信小程序-上拉加载更多和下拉刷新
超级小的大杯柠檬水
2023/06/20
6720
微信小程序-上拉加载更多和下拉刷新
[置顶] 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)
| 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作。进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过vant组件,里面充满了过多的重复代码,在有bug或者有需求变更的时候,每次的改动都要对很多个相同逻辑的页面组件进行修改,于是花了一点时间,将其进行封装,发现还是节省了很多的时间。自己做一个记录。
aehyok
2022/03/11
1.5K0
[置顶]
        前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)
移动端下拉刷新、上拉加载更多 Jquery插件 dropload
a javascript implementation of pull to refresh and up to loadmore 移动端下拉刷新、上拉加载更多插件
王念博客
2019/07/25
6.4K0
react 移动端下拉刷新
pullDownRefresh选项,用来配置下拉刷新功能。当设置为 true 或者是一个 Object 的时候,开启下拉刷新,可以配置顶部下拉的距离(threshold)来决定刷新时机,以及回弹停留的距离(stop)
前端逗逗飞
2021/04/27
4K1
react 移动端下拉刷新
自定义SwipeRefreshLayout实现ListView上拉加载下拉刷新
说实话现在大部分人都不在用ListView了,不过说实话如果仅仅是普通的列表其实用哪个都无所谓的。 可能有人会说有好多第三方的下拉刷新上拉加载的框架,但是我觉得吧,有些东西自己能实现的就还是用自己写的好。 不罗嗦了,直接上代码,注释都已写好
longzeqiu
2019/08/14
1.5K0
vue上拉加载更多组件
我想,工作一段时间的都碰见过上拉加载更多需求,现在这种插件也蛮多的,也很多是把上拉加载下拉刷新结合。但是这些组件都有一个问题,就是下拉到最底部,刷新浏览器,浏览器会记住这个距离,从而触发上拉加载的方法。虽然这个小问题在正常情况下没什么影响,于是自己就研究研究,写了一个上拉加载更多的组件。
wade
2020/04/24
2.4K0
Vue中下拉刷新和上拉加载更多
前言 下拉刷新 ZDropDownRefresh.vue <template lang="html"> <div class="refresh-moudle" @touchstart="touchStart($event)" @touchmove="touchMove($event)" @touchend="touchEnd($event)" ref="myrefresh" :style="{ transform: 'translate3d(0,' + t
码客说
2021/08/31
1.2K0
上拉加载下拉刷新了解下
1.界面上,只分成简单的两块,一块是上方的刷新文字,一块是下方的内容,然后将上方提示内容隐藏在屏幕之外,一般由两种方式,一种是上面遮一层,另一种是marginTop:负值将其弄出屏幕外,这里我采用的是第一种,代码也很简单,就随便贴一下
IMWeb前端团队
2019/12/03
1.9K0
上拉加载下拉刷新了解下
微信小程序下拉刷新上拉加载
下拉刷新 在app.json中 "window": { "backgroundTextStyle": "dark", }, 在页面的配置项.json中 "enablePullDownRefresh":true 在页面的js中 // 触发下拉刷新时执行 onPullDownRefresh: function () { //在标题栏中显示加载 wx.showNavigationBarLoading(); //重新加载的方法 this.getchange(
明知山
2020/09/03
1.9K0
nvue中list组件下拉刷新后无法上拉加载更多
组件官网地址:https://uniapp.dcloud.io/component/list
阿超
2022/08/17
1.6K0
Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh
EasyRefresh 是一个用于 Flutter 应用程序的简单易用的下拉刷新和上拉加载框架。它支持几乎所有的 Flutter 可滚动小部件。它的功能与Android 的 SmartRefreshLayout 非常相似,并吸收了许多第三方库的优点。EasyRefresh 集成了各种样式的页眉和页脚,但没有任何限制,您可以轻松自定义它们。利用Flutter强大的动画功能,即使只是一个简单的控件也可以实现复杂的效果。EasyRefresh的目标是为Flutter创建一个功能强大、稳定和成熟的下拉刷新框架。
訾博ZiBo
2025/01/06
1.1K0
Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh
推荐阅读
相关推荐
这是我见过最牛逼的滑动加载框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档