讲到瀑布流分页有一个方法一定是要用到的 pullToRefresh(),或者说还有一种代码量比较少,但是看起来不怎么高端的

这个也没什么好解释的,想了解的可以去百度一下

下面上代码

<div id="main" class="content"
style="background-color: #FFFFFF; width: 100%;height:100%;position: absolute;overflow: hidden;">
<div class="list-main-mian weui-form-preview infinite weui-pull-to-refresh" id="listwrap"
style="height:100%; margin-top: 1px;overflow:auto; z-index: 1">
<!--下拉刷新-->
<div class="weui-pull-to-refresh__layer" hidden id="downRefresh">
<div class="weui-pull-to-refresh__arrow"></div>
<div class="weui-pull-to-refresh__preloader"></div>
</div>
<div class="weui-form-preview" id="Tolist">
<!--内容展示区域-->
<div id="app" v-cloak>
<!--状态栏-->
<div class="nav" >
<a href="${ctx}/mobile/activity/home.jsp">
<button><img src="${ctx}/mobile/activity/img/Arrow.png"/></button>
</a>
<span>活动列表</span>
<div> </div>
</div>
<button class="See popup-opu" style="border: 0px;"></button>
<a :href="toActivityDetail(item.activityEntity.recno)" v-for="(item,index) in edRecomList">
<div class="Result">
<div class="shop-img">
<img v-bind:src="getImages(item.activityEntity.themeImage)"/>
</div>
<div class="describe">
<div class="Price">
<span class="Trade-name">{{item.activityEntity.name}}</span>
<div class="fuzhu">
<div class="Price-address">
<div></div>
<span>{{item.activityEntity.address}}</span>
</div>
</div>
<span class="Number">
<span> {{item.activityEntity.count}}人参加</span>
</span>
<span class="price-time">{{formatDate(item.activityEntity.begdate)}}~{{formatDate(item.activityEntity.enddate)}}</span>
</div>
</div>
<li class="Dividing"></li>
<div :class="getClass(item.activityEntity.state)">{{['','发布','进行','暂停','结束'][item.activityEntity.state]}}</div>
</div>
</a>
<!-- <a @click="queryDate()" v-show="more"
class="weui-btn weui-btn_disabled weui-btn_default" style="margin-bottom: 60px;">加载更多</a> -->
<%--滚动--%>
<div id="scrollItem" style="height: 1px"></div>
</div>
</div>
<div id="bottomRefresh" class="weui-loadmore" style="margin-bottom: 64px">
<div id="bottomRefreshTip" style="text-align: center">
数据已全部加载
</div>
<div id="bottomRefreshContent" style="visibility: hidden">
<i class="weui-loading"></i>
<span class="weui-loadmore__tips">正在加载</span>
</div>
</div>
</div>
<a style="display:none" href="javascript:;" id="btn" title="回到顶部"></a>
</div>

接下来就是js代码

var bottomRefreshContent = $("#bottomRefreshContent");
var listWarp = $("#listwrap");
var bottomRefreshTip = $("#bottomRefreshTip");
var downRefresh = $("#downRefresh");
listWarp.pullToRefresh().on("pull-to-refresh", function () {
downRefresh.show();
vm.queryDate(function (data) {
downRefresh.hide();
listWarp.pullToRefreshDone(); // 重置下拉刷新
//重置数据为第一页
vm.edRecomList = data.result.rows
});
// }, 1000); });
var loading = false; //状态标记
listWarp.infinite(80).on("infinite", function () {
if (loading) return;
loading = true;
bottomRefreshContent.css("visibility", "visible");
bottomRefreshTip.css("visibility", "hidden");
vm.initPage.page = vm.initPage.page+1;
vm.param.page = vm.initPage;
// setTimeout(function () {
vm.queryDate(function () {
loading = false;
});
// }, 1000);
});
var vm = new Vue({
el: '#app',
data: {
edRecomList:[]
,more: false
,type:""
,initPage: {
page: 1,
pageSize: 8
}
,param: {}
,total:0
},
methods: {
queryDate: function(callFun){
var that = this;
//查询类型
this.param.type = this.type
$.post("${ctx}/mobile/activity/selectEdRecommendList.do",{"param":JSON.stringify(this.param)} ,function (data) {
if(data.state == 200){
if (data.result.rows.length > 0) {
that.edRecomList = that.edRecomList.concat(data.result.rows);
if (data.result.rows.length < that.initPage.pageSize) {
//隐藏加载中提示
bottomRefreshContent.css("visibility", "hidden");
bottomRefreshTip.css("visibility", "visible");
} else {
//隐藏数据全部完成提示
bottomRefreshContent.css("visibility", "visible");
bottomRefreshTip.css("visibility", "hidden");
}
if (callFun) {
callFun(data)
}
}else{
//隐藏加载中提示
bottomRefreshContent.css("visibility", "hidden");
bottomRefreshTip.css("visibility", "visible");
}
}
} ,'json');
}, },
mounted: function () {
this.param.page = this.initPage;
this.queryDate();
} })

方法二

 $(window).on("resize scroll", function () {
var windowHeight = $(window).height();//当前窗口的高度
var scrollTop = $(window).scrollTop();//当前滚动条从上往下滚动的距离
var docHeight = $(document).height(); //当前文档的高度
// console.log(scrollTop, windowHeight, docHeight);
//当 滚动条距底部的距离 + 滚动条滚动的距离 >= 文档的高度 - 窗口的高度
//换句话说:(滚动条滚动的距离 + 窗口的高度 = 文档的高度) 这个是基本的公式
if (scrollTop + windowHeight >= docHeight) {
//vm.nextActivityPage();
vm.getSelectData(4);
      //这里是执行的方法,在编写过程中,可能会遇到一个问题,就是数据会无故累加,
      //这里需要判断一下当前查询的数据是否是最后一页数据,如果是,就不再执行下一次分页
    }      
});

使用vue做移动端瀑布流分页的更多相关文章

  1. .Net/C#分库分表高性能O(1)瀑布流分页

    .Net/C#分库分表高性能O(1)瀑布流分页 框架介绍 依照惯例首先介绍本期主角:ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖.零学习成本. ...

  2. 分享一个Vue实现图片水平瀑布流的插件

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.需求来源 今天碰到了一个需求,需要在页面里,用水平瀑布流的方式,将一些图片进行加载,这让我突然想起我很久以前写的一篇文章<JS两 ...

  3. 前端-PC端瀑布流【10张图】

    .HTML 利用封装的 jquerywaterfall.js 方法 完成 <!DOCTYPE html> <html lang="en"> <head ...

  4. vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

    一.思路分析和效果图 用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果.然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果: 选择哪种方式实 ...

  5. 炫酷的jquery瀑布流

    最近做了一个瀑布流效果,思路很简单 首先计算屏幕一行可以放多少个图片,然后在第二行开始,计算每一列的高度并取出最小值,将新图片加载在最小列高度下,如此循环,并且设定一个条件,当滑动到一定距离后,开始重 ...

  6. vue.js移动端配置flexible.js

    前言 最近在用vue做移动端项目,网上找了一些移动端适配的方案,个人觉得手淘团队flexible.js还是比较容易上手,在这里做下总结. 主体 flexible.js适配方案采用rem布局,根据屏幕分 ...

  7. css3多列布局瀑布流加载样式

    看了一些网站的瀑布流加载,正好看到css3的多列属性,尝试着写了一个css做布局的瀑布流. 直接上代码: <!DOCTYPE html> <html lang="en&qu ...

  8. Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)

    一.Masonry 是基于Jquery插件,用于对CSS布局的可移动层进行重新布局.Masonry愿意石工,可以这样形象的理解,页面上很多大小不一的移动层可以想象成散乱的石头,经过Masonry这个石 ...

  9. vue.js实现瀑布流之vue-waterfall-easy

    想必大家应该很多都已经习惯了jquery的DOM操作,jquery的瀑布流实现起来也很容易. 但是,随着时代的发展,随着时代的进步..... 算了算了,扯远了,既然能找到这儿来,肯定是在vue.js上 ...

随机推荐

  1. HDU - 2612 Find a way 双起点bfs(路径可重叠:两个队列分别跑)

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. Cookie和Session(3)

    关于Cookie和Session Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力. 1)cookie 是一种发送到客户浏 ...

  3. [OpenGL]配置GLFW(超详细)

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  4. hdoj 1588 学好线代与数学

    按部就班,超级简单,虽然不是一次过的...错在那个long long数据问题还是要注意..也不知道要怎么注意:还是说题目吧... 思路看main函数 其他函数功能也是非常有用!代码比较丑...见谅 # ...

  5. Type中的3个bool属性: IsGenericType , IsGenericTypeDefinition , IsGenericParameter

    首先说下 IsGenericType 用3个实例说明: typeof(DateTime).IsGenericType : false typeof(List<int>).IsGeneric ...

  6. Hexo搭建博客教程(1) - 安装环境与本地搭建

    前言 搭建个人博客一般有两种选择,一个是使用WordPress,但是需要将博客搭建在服务器上,不过搭建好后写文章方便,适合没有程序基础的人使用.另一个是使用Hexo,相对简洁高效,不需要服务器,既可以 ...

  7. ie img 3px bug

    ie img 3px bug 日期:2008-11-22 分类:CSS ie img 有 3px 的缝隙也是 ie 的经典 bug 之一,相信已经不陌生了,但还是先看看效果吧(也许你并没有见过): 效 ...

  8. 数据库 | 远程连接centos7上数据库

    用root身份进入远程服务器控制台: 进入Mysql命令: # mysql -uroot -p 或者在本地上连接到远程主机上的MySQL: 假设远程主机的IP为:10.0.0.1,用户名为root,密 ...

  9. Qt 2D绘图之五:图形视图框架的结构和坐标系统

    一.图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们.但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动.检测它们的碰撞和叠加:或者我们想让自己绘制的图 ...

  10. POJ-1062-昂贵的聘礼(枚举)

    链接:https://vjudge.net/problem/POJ-1062 题意: 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为 ...