1.npm install --save mescroll.js

2.

<template>
<div>
<!--全部-->
<mescroll-vue
ref="mescroll0"
v-show="tabType==0"
:down="getMescrollDown(0)"
:up="getMescrollUp(0)"
@init="mescrollInit0"
>
<ul id="dataList0">
<li class="data-li" v-for="pd in tab0.list" :key="pd.id">
<img class="pd-img" :src="pd.pdImg">
<div class="pd-name">{{pd.pdName}}</div>
<p class="pd-price">{{pd.pdPrice}} 元</p>
<p class="pd-sold">已售{{pd.pdSold}}件</p>
</li>
</ul>
</mescroll-vue>
</div>
</template> <script>
// 引入mescroll的vue组件
import MescrollVue from "mescroll.js/mescroll.vue";
// 模拟数据
import mockData from "../.././assets/pdlist"; export default {
name: "mescrollMore",
components: {
MescrollVue
},
data() {
return {
tab0: { mescroll: null, list: [], isListInit: false }, // 全部
tabType: // 菜单类型
};
},
methods: {
// mescroll组件初始化的回调,可获取到mescroll对象
mescrollInit0(mescroll) {
mescroll.tabType = ; // 加入标记,便于在回调中取到对应的list
this.tab0.mescroll = mescroll;
},
// 多mescroll的配置,需通过方法获取,保证每个配置是单例
getMescrollDown(tabType) {
let isAuto = tabType === ; // 第一个mescroll传入true,列表自动加载
return {
auto: isAuto,
callback: this.downCallback
};
},
getMescrollUp(tabType) {
return {
auto: false,
callback: this.upCallback,
page:{
num:,
size:
}, // 上拉回调,此处可简写; 相当于 callback: function (page) { upCallback(page); }
noMoreSize: , // 如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
empty: {
// warpId: emptyWarpId, // 父布局的id;
icon: "http://www.mescroll.com/img/mescroll-empty.png", // 图标,默认null
tip: "暂无相关数据~", // 提示
btntext: "去逛逛 >", // 按钮,默认""
btnClick: function() {
// 点击按钮的回调,默认null
alert("点击了按钮,具体逻辑自行实现");
}
},
toTop: {
// 配置回到顶部按钮
src: "http://www.mescroll.com/img/mescroll-totop.png" // 图片路径,默认null (建议写成网络图,不必考虑相对路径)
}
};
},
/* 下拉刷新的回调 */
downCallback(mescroll) {
mescroll.resetUpScroll(); // 触发下拉刷新的回调,加载第一页的数据
},
/* 上拉加载的回调 page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
upCallback(page, mescroll) {
console.log(page)
if (mescroll.tabType === ) {
// 全部
this.tab0.isListInit = true; // 标记列表已初始化,保证列表只初始化一次
this.getListDataFromNet(
mescroll.tabType,
page.num,
page.size,
(curPageData) => {
mescroll.endSuccess(curPageData.length); // 联网成功的回调,隐藏下拉刷新和上拉加载的状态;
if (page.num === ) this.tab0.list = []; // 如果是第一页需手动制空列表
this.tab0.list = this.tab0.list.concat(curPageData); // 追加新数据
},
() => {
if (page.num === ) this.tab0.isListInit = false;
mescroll.endErr(); // 联网失败的回调,隐藏下拉刷新的状态
}
);
}
},
// 获取菜单对应的数据
getTabData(tabType) {
if (tabType == null) tabType = this.tabType;
if (tabType === ) {
return this.tab0;
}
},
getListDataFromNet(
tabType,
pageNum,
pageSize,
successCallback,
errorCallback
) {
// 延时一秒,模拟联网
setTimeout(() => {
try {
var listData = [];
if (tabType === ) {
// 全部商品 (模拟分页数据)
for (
var i = (pageNum - ) * pageSize;
i < pageNum * pageSize;
i++
) {
if (i === mockData.length) break;
listData.push(mockData[i]);
}
}
// 回调
successCallback && successCallback(listData);
} catch (e) {
// 联网失败的回调
errorCallback && errorCallback();
}
}, );
}
}
};
</script> <style scoped>
/*以fixed的方式固定mescroll的高度*/
.mescroll {
position: fixed;
top: 10px;
bottom: ;
height: auto;
} /*展示上拉加载的数据列表*/
.data-li {
position: relative;
height: 115px;
padding: 10px 8px 10px 120px;
border-bottom: 1px solid #eee;
}
.data-li .pd-img {
position: absolute;
left: 18px;
top: 10px;
width: 80px;
height: 80px;
}
.data-li .pd-name {
font-size: 13px;
line-height: 20px;
height: 40px;
margin-bottom: 10px;
overflow: hidden;
}
.data-li .pd-price {
font-size: 13px;
color: red;
}
.data-li .pd-sold {
font-size: 12px;
margin-top: 8px;
color: gray;
}
</style>

mockData的数据
const pdlist = [
{
'id': ,
'pdImg': './static/mock/img/pd1.jpg',
'pdName': '【1】 六罐装荷兰美素佳儿金装2段900g',
'pdPrice': 1149.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd2.jpg',
'pdName': '【2】 韩国Amore爱茉莉红吕洗发水套装修复受损发质',
'pdPrice': 89.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd3.jpg',
'pdName': '【3】 Friso美素佳儿 金装婴儿配方奶粉3段900g',
'pdPrice': 195.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd4.jpg',
'pdName': '【4】 Fisher pdPrice费雪 费雪三轮儿童滑行车',
'pdPrice': 299.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd5.jpg',
'pdName': '【5】 Babylee巴布力 实木婴儿床 雷卡拉130*70cm',
'pdPrice': 1889.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd6.jpg',
'pdName': '【6】 Pigeon贝亲 独立三层奶粉盒 送小罐奶粉1段200g',
'pdPrice': 70.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd7.jpg',
'pdName': '【7】 TTBOO兔兔小布 肩纽扣套装',
'pdPrice': 268.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd8.jpg',
'pdName': '【8】 Nuna璐拉 婴儿布里奇果精纯嫩肤沐浴露婴儿精纯芦荟胶',
'pdPrice': 140.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd9.jpg',
'pdName': '【9】 illuma启赋 奶粉3段900g',
'pdPrice': 252.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd10.jpg',
'pdName': '【10】 Abbott雅培乳蛋白部分水解婴儿配方奶粉3段820g',
'pdPrice': 89.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd11.jpg',
'pdName': '【11】 韩蜜 酷炫唇蜜(礼盒套装)2.8g*4',
'pdPrice': 179.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd12.jpg',
'pdName': '【12】 保税区直发【3包装】日本Merries花王纸尿裤NB90',
'pdPrice': 289.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd13.jpg',
'pdName': '【13】 Comotomo可么多么 硅胶奶瓶(0-3月奶嘴)150ml绿色',
'pdPrice': 203.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd14.jpg',
'pdName': '【14】 香港直邮德国瑞德露Rival de Loop芦荟精华安瓶',
'pdPrice': 152.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd15.jpg',
'pdName': '【15】 保税区直发药师堂尊马油香草味温和保湿无刺激面霜',
'pdPrice': 269.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd16.jpg',
'pdName': '【16】 香港直邮日本Spatreatment眼膜保湿去细纹法令纹',
'pdPrice': 219.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd17.jpg',
'pdName': '【17】 韩国MEDIHEALNMF可莱丝针剂睡眠面膜',
'pdPrice': 81.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd18.jpg',
'pdName': '【18】 DHC蝶翠诗橄榄蜂蜜滋养洗脸手工皂90g',
'pdPrice': 123.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd19.jpg',
'pdName': '【19】 日本资生堂CPB肌肤之钥新版隔离霜 清爽型 30ml',
'pdPrice': 429.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd20.jpg',
'pdName': '【20】 Heinz亨氏 婴儿面条优加面条全素套餐组合3口味3盒',
'pdPrice': 39.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd21.jpg',
'pdName': '【21】 Heinz亨氏 乐维滋果汁泥组合5口味15袋',
'pdPrice': 69.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd22.jpg',
'pdName': '【22】 保税区直发澳大利亚Swisse高浓度蔓越莓胶囊30粒',
'pdPrice': 271.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd23.jpg',
'pdName': '【23】 挪威Nordic Naturals小鱼婴幼儿鱼油DHA滴剂',
'pdPrice': 102.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd24.jpg',
'pdName': '【24】 澳大利亚Bio island DHA for Pregnancy海藻油DHA',
'pdPrice': 289.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd25.jpg',
'pdName': '【25】 澳大利亚Fatblaster Coconut Detox椰子水',
'pdPrice': 152.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd26.jpg',
'pdName': '【26】 Suitsky舒比奇 高护极薄舒爽纸尿片尿不湿XL60',
'pdPrice': 99.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd27.jpg',
'pdName': '【27】 英国JUST SOAP手工皂 玫瑰天竺葵蛋糕皂',
'pdPrice': 72.00,
'pdSold':
}, {
'id': ,
'pdImg': './static/mock/img/pd28.jpg',
'pdName': '【28】 德国NUK 多色婴幼儿带盖学饮杯',
'pdPrice': 92.00,
'pdSold':
}
] export default pdlist

mescroll在vue中的应用的更多相关文章

  1. vue中如何不通过路由直接获取url中的参数

    前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...

  2. vue中的重要特性

    一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  3. Vue中comoputed中的数据绑定

    Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...

  4. vue中使用stompjs实现mqtt消息推送通知

    最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...

  5. Vue中应用CORS实现AJAX跨域,及它在 form data 和 request payload 的小坑处理

    基本概念部分(一):理解CORS 说道Vue的跨域AJAX,我想先梳理一遍CORS跨域,"跨域资源共享"(Cross-origin resource sharing),它是一个W3 ...

  6. vue中watched属性

    watched属性,vue中的观察属性,可用来监听一个值的变化 默认有两个参数,新值,旧值 data (){ return { currentCity: "深圳" } } watc ...

  7. 七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面

      v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularj ...

  8. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

  9. vue中数据双向绑定的实现原理

    vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下. 首先大致学习了解下Object.defineProperty()这个东东吧! * Objec ...

随机推荐

  1. Java编程的逻辑 (94) - 组合式异步编程

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  2. RSA加密算法详解(一)

    如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先 ...

  3. 关于azkaban上传job压缩包报错问题的解决方案

    在azkaban上传job压缩包如果出现 installation Failed Error Chunking during uploading files to db.. 错误,可通过如下方法解决. ...

  4. mac:Go安装和配置+GoLand安装和使用之完整教程

    前言 作为一个go语言程序员,觉得自己有义务为go新手开一条更简单便捷的上手之路.纵使网上教程很多,但总不尽人意.go的入门门槛还是非常低的,无论是安装还是使用. go安装 go 语言支持以下系统:  ...

  5. DR、BDR、SBR、ASBR等名词的解释和原理

    DR是指定路由器的意思是为了解决LSA在一个area里浪费很大的带宽而设计的 BDR是备份指定路由器,就是DR的一个备用.DR和BDR只在广播网和NBMA网络中有,而P2P和P2MP中是没有的. AB ...

  6. [转]SASS用法指南

    [转]SASS用法指南 转自阮一峰 SASS用法指南 一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了 ...

  7. [踩坑日记]spring mvc

    目录 找不到javax.servlet.ServletException的类文件 idea 清除tomcat缓存 IOException parsing XML document from Servl ...

  8. FlexCel 插入公式和插入新行

    //http://www.tmssoftware.biz/flexcel/doc/vcl/api/FlexCel.Core/TExcelFile/InsertAndCopyRange.html#tex ...

  9. Maven私服(Repository Manager) - Nexus安装和使用(详细过程)

    Maven私服的安装和使用. (注:原创文章,引用请注明来自Clement-Xu的博客!) Maven私服(即Repository Manager)的主要作用: 减少从远方仓库下载的次数,节省带宽.提 ...

  10. python处理文件的换行符

    我们知道在Windows平台下的换行符是\r\n,而在linux下的换行符是\n.现在写一个简单程序来测试python是如何处理这些换行符的. 准备文件data.txt,该文件在Windows平台下编 ...