vue-better-scroll实现移动端下拉加载组件
1.下载安装better-scroll
npm i -S better-scroll
1.1安装完成之后,打开pacaage.json文件查看,是否有(better-scroll)
"dependencies": {
"axios": "^0.19.0",
//已安装better-scroll
"better-scroll": "^1.15.2",
"core-js": "^2.6.5",
"vue": "^2.6.10",
"vue-router": "^3.0.3",
"vuex": "^3.0.1"
},
2.在components下创建组件Scrooller
<template>
<div class="wrapper" ref="wrapper">
<!-- 内容分发 -->
<slot></slot>
</div>
</template> <script>
import BScroll from 'better-scroll';
export default {
name: 'Scroller',
// 父子通信
props : {
handleToScroll : {
type : Function,
// 默认一个空的方法 防止报错
default : function(){},
},
handleToTouchEnd : {
type:Function,
default: function(){}
}
},
mounted(){
//接收两个参数 1.找到最外层包裹的容器 dom元素 2.配置元素 true 开启配置
var scroll = new BScroll( this.$refs.wrapper,{
tap:true,
probeTybe: 1
}); scroll.on('scroll',(pos) => {
this.handleToScroll(pos);
}); scroll.on('touchEnd',(pos) => {
this.handleToTouchEnd(pos);
})
}
}
</script> <style scoped>
.wrapper{
height: 100%;
}
</style>
2.1在main.js中全局注册Scroller
// scroller全局组件
import Scroller from '@/components/Scroller/Scroller.vue'
Vue.component('Scroller',Scroller);
3.在views中引入Scroller组件
<template>
<div class="movie_body" ref="movie_body">
<!-- 父子间传递方法 -->
<Scroller :handleToScroll="handleToScroll" :handleToTouchEnd="handleToTouchEnd">
<ul>
<li class="pulldown">内容</li>
</ul>
</Scroller>
</div>
</template>
<script>
// import BScroll from 'better-scroll'; export default {
name: 'name',
data(){
return { movieList : [],
//加载状态
pullDownMsg : ''
}
},
mounted(){
this.axios.get('接口').then((res) => {
//处理数据并赋值给movieList
})
},
methods:{
//调用组件中的方法
handleToScroll(pos){
//y轴下拉高度大于30时,改变pullDownMsg
if( pos.y > 30){
this.pullDownMsg = '正在加载...'
}
},
//调用组件中的方法
handleToTouchEnd(pos){
if(pos.y > 30){
// 发起ajax
this.axios.get(’接口').then((res) => {
var msg = res.data.msg;
if(msg === 'ok'){
this.pullDownMsg = '加载完成!';
//延迟一秒
setTimeout(() =>{
this.movieList = res.data.list;
this.pullDownMsg = ''
},1000)
}
})
}
}
}
}
</script>
vue-better-scroll实现移动端下拉加载组件的更多相关文章
- web移动端下拉加载数据简单实现
//下拉加载在移动端会经常使用,有些小伙伴不清楚一些原理下面就简答的介绍一下 //首先需要监听window的滚动事件,下拉其实就是在监听window滚动事件 var pageNum = 1;//分页第 ...
- 基于Zepto移动端下拉加载(刷新),上拉加载插件开发
写在前面:本人水平有限,有什么分析不到位的还请各路大神指出,谢谢. 这次要写的东西是类似于<今日头条>的效果,下拉加载上啦加载,这次做的效果是简单的模拟,没有多少内容,下面是今日头条的移动 ...
- Vue自定义指令实现下拉加载:v-loadmore
和methods平级: directives: { loadmore: {//自定义指令: 下拉加载 bind(el, binding) { var p = 0; var t = 0; ...
- 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)
| 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作.进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过v ...
- vue实现pc端上拉加载功能,不兼容移动端
所用插件:Mock.js 这个只用到它简单的功能,拦截ajax请求. vue和axios,vue基础知识请看文档. axios类似于jquery的ajax方法. 以下是是该功能所有代码,其中mock的 ...
- 移动端好用的下拉加载上拉刷新插件 dropload插件
入了很多下拉加载上拉刷新的插件,但是感觉都不好用,知道最近遇到这款dropload的插件,瞬间打开新世界的大门啊,无卡顿简单易用可配置 <!doctype html> <html&g ...
- MUI - 上拉刷新/下拉加载
新闻信息列表必备的功能,支持Table,Ul等列表. 以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldo ...
- 集成iscroll 下拉加载更多 jquery插件
一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...
- 下拉加载更多DEMO(js实现)
项目的一个前端页面展示已购买商品时,要求能下拉加载更多.花了点时间研究这个功能,以前没做过. 首先需要给div加scroll事件,监听滚动条滚动动作.那何时触发加载动作呢?当滚动条滚到底的时候.如何判 ...
随机推荐
- DateTime格式转换部分介绍
DateTime与字符串转换: DateTime()与转换为字符串主要依靠DateTime().ToString(string format) 函数,以我的理解,参数format大体分为单个字母和多个 ...
- 使用正则表达式实现(加减乘除)计算器(C#实现)
起因:公司领导要求做一款基于行业规范的计算器, 然后需要用户输入一些数据,然后根据用户输入的数据满足某些条件后,再根据用户输入的条件二进行加减乘除运算.;-) 期间因为查找规范等形成数据表的某一列是带 ...
- 产品vs程序员:你知道www是怎么来的吗?
精彩回顾: 我是一个explorer的线程 我是一个杀毒软件线程 我是一个IE浏览器线程 比特宇宙-TCP/IP的诞生 Unix.Linux.Windows三大帝国集团发表<关于比特宇宙推进经贸 ...
- Java修炼——四种方式解析XML_SAX
四种方式解析XML:DOM JDOM DOM4J SAX 先写一个XML栗子: <?xml version="1.0" encoding="U ...
- CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解
A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Python3 函数小练习
函数小练习 第一题 现有文件info.txt, 其内容如下: alpha male 18 1000 bravo male 28 2000 charlie female 38 3000 delta fe ...
- 基于RT-Thread的人体健康监测系统
随着生活质量的提高和生活节奏的加快,人们愈加需要关注自己的健康状况,本项目意在设计一种基于云平台+APP+设备端的身体参数测试系统,利用脉搏传感器.红外传感器.微弱信号检测电路等实现人体参数的采集,数 ...
- forEach()和for/in循环的缺点与for-of循环
以数组为例,JavaScript 提供多种遍历语法.最原始的写法就是for循环. for (var index = 0; index < myArray.length; index++) { c ...
- webpack学习2.2webpack简介,初步了解
webpack V1功能进化 编译打包 HMR(模块热更新) 代码分割 文件处理(loader) webpack V2功能进化 tree shaking(并欸有在项目中使用的代码不会打包到里面,打包之 ...
- JS基础知识——原型与原型链
1.如何准确判断一个变量的数组类型 2.写一个原型链继承的例子 3.描述new一个对象的过程 4.zepto(或其他框架中如何使用原型链) 知识点: (1)构造函数 function Foo(name ...