<vueScroll实现移动端下拉刷新、上拉加载
您的当前位置:首页正文

vueScroll实现移动端下拉刷新、上拉加载

2023-12-07 来源:六三科技网

移动端开发,处理列表翻页和数据的时候,下拉刷新和上拉加载应用的比较广泛,今天给大家推荐一个vue的插件,vueScroll,首先上图:

话不多说,上代码了:

一、引入并使用VueScroll

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

二、在html或者.vue组件里面使用

三、在js文件里面操作插件

首先在在methods里面写上方法

在data里面实现申明好 isLoading = true;

然后继续在methods里面写上刷新和加载的方法:

refresh(done) { let timer = null; this.page = 1; clearTimeout(timer); timer = setTimeout(() => { this.myInstalHomeFun(done); }, 500);},infinite(done) { let timer = null; clearTimeout(timer); timer = setTimeout(() => { this.myInstalHomeFun(done); }, 500);}

到这里就可以实现效果了,但是但是 有几个细节我必须提一下:

(1)高度的问题,这个插件需要给外层的scroller 设置高度,所以要注意,我这里是这样操作的:

methods: { // 获取高度 getHeight(){ let bodyHeight = document.documentElement.clientHeight; let scroller = this.$refs.scroller; let scrollerTop = scroller.getBoundingClientRect().top; scroller.style.height = (bodyHeight-scrollerTop)+"px"; },}

并且在mounted里面调用这个方法,这样就可以把高度设置好,并且在任何位置都可以放置了

(2)vueScoller 内部的结构是绝对定位,所以一定要给外层设置好相对定位;

这样就可以解觉定位引起的位置跑偏的问题了。

参考文档:https://vuescrolljs.yvescoding.org

小编还为您整理了以下内容,可能对您也有帮助:

vue中好用的下拉刷新、上拉加载插件mescroll.js

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

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

1.npm安装

2.导入(在哪个页面使用,则在哪个页面导入):

注册组件:

3.template使用

4.data里进行相关配置

5.style样式

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

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

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

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

vue的滚动条插件vue-scroll

最近在开发Vue项目时,需要实现一个页面的局部滚动条功能。以前实现此类功能都是使用的iframe原生的滚动条功能,保证内容只在div块内滚动,别的地方不影响。
据尝试,发现Iview等组件库都没有符合这种情况的组件,于是查找了其他组件,最终选用了vue-scroll插件。

vuescroll 是一个基于 vue.js 2.X 虚拟滚动条, 它支持定制滚动条的样式,检测内容尺寸变化、能够使内容分页、支持上拉-刷新,下推加载等诸多特性。

(1)拥有原生滚动条的滚动行为
(2)可以定制滚动条的样式(包括颜色、尺寸、位置、透明度、是否保持显示等)
(3)在模式之间自由切换
(4)能够通过设置滚动动画来平滑地滚动
(5)拉取刷新和推动加载
(6)支持分页模式(每次滑动整个页面)
(7)支持快照模式(每次滑动滚动一个用户定义的距离)
(8)可以检测内容尺寸发生变化

在components中再注册一下

这两种引入方式都可以,引入后用vuescroll包裹需要滚动的部分

在data中写明需要修改的配置项

vue的滚动条插件vue-scroll

最近在开发Vue项目时,需要实现一个页面的局部滚动条功能。以前实现此类功能都是使用的iframe原生的滚动条功能,保证内容只在div块内滚动,别的地方不影响。
据尝试,发现Iview等组件库都没有符合这种情况的组件,于是查找了其他组件,最终选用了vue-scroll插件。

vuescroll 是一个基于 vue.js 2.X 虚拟滚动条, 它支持定制滚动条的样式,检测内容尺寸变化、能够使内容分页、支持上拉-刷新,下推加载等诸多特性。

(1)拥有原生滚动条的滚动行为
(2)可以定制滚动条的样式(包括颜色、尺寸、位置、透明度、是否保持显示等)
(3)在模式之间自由切换
(4)能够通过设置滚动动画来平滑地滚动
(5)拉取刷新和推动加载
(6)支持分页模式(每次滑动整个页面)
(7)支持快照模式(每次滑动滚动一个用户定义的距离)
(8)可以检测内容尺寸发生变化

在components中再注册一下

这两种引入方式都可以,引入后用vuescroll包裹需要滚动的部分

在data中写明需要修改的配置项

vue列表数据如何滚动刷新十条

要实现Vue列表数据的滚动刷新十条,可以借助Vue的计算属性和监听滚动事件来实现。首先,在Vue的数据中定义一个变量来表示当前已加载的数据条数,比如`loadedItems`,初始值为0。然后,在模板中使用`v-for`指令来遍历列表数据,并通过计算属性来遍历的条数为`loadedItems + 10`。接着,在mounted钩子函数中监听滚动事件,当滚动到页面底部时,将`loadedItems`的值加上10,即可触发计算属性的更新,实现滚动刷新十条数据。

原因解释:通过监听滚动事件,可以实时监测用户的滚动行为,当滚动到页面底部时,就可以触发加载新的数据的操作。而通过计算属性,我们可以动态地控制遍历数据的条数,从而实现滚动刷新十条的效果。

拓展内容:除了上述的方法外,还可以考虑使用第三方插件或库来实现滚动刷新十条数据,比如使用Vue-Infinite-Scroll插件。该插件可以方便地实现无限滚动加载数据的功能,只需简单配置即可。此外,还可以考虑使用分页加载的方式,将列表数据按照页码进行划分,每次滚动到底部时加载下一页的数据,从而实现滚动刷新十条数据的效果。

Vuescroll - 一个基于Vue的虚拟滚动条

推荐一个基于Vue的滚动条-Vuescroll

GitHub地址: vuescroll

以前接触过一个后端管理系统, 叫H+, 偶尔发现它用的是左侧菜单没有滚动条, 于是, 我仔细查看dom, 发现H+ 左侧菜单的旁边有一个小的DIV, 我拖动的, 菜单竟然也能滚动, 我明白了, 这是用的虚拟滚动条, 我感觉这个挺不错的, 后来查看这个虚拟滚动条的源码, 发现是一个款叫做SlimScroll的基于jquery的库。由于我对Vue比较熟悉,所以,我想用Vue做一个类似的。

一开始用slimScroll的方法并不理想, slimscroll的滚动内容的方法是:

这有个2致命的缺点:

这两点带来了极差的UI体验!

后来, 我无意中发现了element-ui也是使用了虚拟滚动条, 并且效果很好, 尤其是在手机端滑动, 每次滑动结束手离开屏幕都能继续滑行一段距离, 比slimscroll效果要好,于是我就去element-ui的github上翻scrollbar的源码, 通过阅读源码, 我发现element-ui触发滚动的时机是在onscroll的时候, 也就是说, 把滚动内容的父元素设置为 overflow:scroll , 然后监听父元素的onScroll事件, 在onScroll事件的callback里面移动滚动内容即可。 经过我的一番改进, 终于能做到和element-ui滚动条滚动的一个效果了。

后来,我又接触到了几个不错的, 并把它们的特点加进来了。 如element-resize-detector, scroller, smooth-scroll, bertter-scroll等等。 现在的Vuescroll已经升级为一个功能强大的滚动条了。

它的基本特点有:

总的来说,Vuescroll不仅仅只一个滚动条, 你可以用它制作一个轮播图、时间选择器、能够自动侦测内容发生变化的一个插件等等。

部分参考资料

六三科技网还为您提供以下相关内容希望对您有帮助:

vue中好用的下拉刷新、上拉加载插件mescroll.js

1.npm安装 2.导入(在哪个页面使用,则在哪个页面导入):注册组件:3.template使用 4.data里进行相关配置 5.style样式 具体的配置可以参考: mescroll配置 6.scroll属性在ios手机上回出现卡顿问题 在进行滚动的这个容器样式中...

vue的滚动条插件vue-scroll

vuescroll 是一个基于 vue.js 2.X 虚拟滚动条, 它支持定制滚动条的样式,检测内容尺寸变化、能够使内容分页、支持上拉-刷新,下推加载等诸多特性。(1)拥有原生滚动条的滚动行为 (2)可以定制滚动条的样式(包括颜色、尺...

vue列表数据如何滚动刷新十条

可以使用Vue插件,如vue-infinite-scroll,来实现无限滚动功能。当滚动到底部时,可以通过异步请求获取新的数据,并将其添加到列表数据中。针对要滚动刷新十条数据的需求,可以在滚动到底部时,每次加载十条新数据,并将其添加...

Vuescroll - 一个基于Vue的虚拟滚动条

GitHub地址: vuescroll 以前接触过一个后端管理系统, 叫H+, 偶尔发现它用的是左侧菜单没有滚动条, 于是, 我仔细查看dom, 发现H+ 左侧菜单的旁边有一个小的DIV, 我拖动的, 菜单竟然也能滚动, 我明白了, 这是...

vue滚动scroll组件求推荐

vue-infinite-scroll - VueJS的无限滚动指令 vue-scrollbar - 最简单的滚动区域组件 vue-scroll - vue滚动 vue-pull-to-refresh - Vue2的上拉下拉 mint-loadmore - VueJS的双向下拉刷新组件 vue-smoothscroll - smooth...

vue 在网页打开适配移动页面大小

在加的时候可以看下外层是否有一个overflow:auto的css属性;把这个属性调成overflow:hidden看下原来的滚动条是否隐藏了,如果是说明这就是你要叫上&lt;GeminiScrollbar&gt;的位置。  vuescroll 也是类似的。暂时测试i9+和火狐...

vue高德地图 如何一次添加多个点标记到地图实例?

首先你需要提交你的公司的资料信息,地址信息 ,公司名称 以及电话信息,门脸照片给官方,提交给官方后,他们会审核的,一般都是 1-7个工作日审核 审核通过后1-3天时间展现 如果发现地图有错误,可以进行纠错处理。

uniapp清空长列表卡顿

2、可以用下mescroll 这个组件,mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件。原生js, 不依赖jquery,zepto支持vue超详细注释, 快速使用,轻松上手一套代码多端运行, 支持uni-app,完美运行于android, iOS, 手机各...

Web前端开发主要学哪些?

以无监督的方式解决复杂3D视觉任务,无疑谷歌浏览器也会支持3D图像,前端技术实现在线可视化开发,基于webgl的3D框架有thingjs,three.js。thingjs是这两年新兴的3D框架,更加简单,官网有注册优惠别错过~理论知识是基础,对于...

vue如何实现移动端滚动让一个图标显示隐藏

returnValue = false //屏蔽body滚动事件 if (evt.wheelDelta &lt;= -120) { boDiv.scrollTop=boDiv.scrollTop+40 } else if (evt.wheelDelta &gt;= 120) { boDiv.scrollTop=boDiv.scrollTop-40 } })} } } ...

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

Top