讲到瀑布流分页有一个方法一定是要用到的 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. JavaWeb学习——获取类路径下的资源

    对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源. 获取资源的方式有两种,利用Class或ClassLoader. Class类的getResourceAsStream( ...

  2. windows7任务管理器内存相关列详细解释

    内存 - 工作集:私人工作集中的内存数量与进程正在使用且可以由其他进程共享的内存数量的总和.  内存 - 峰值工作集:进程所使用的工作集内存的最大数量.  内存 - 工作集增量:进程所使用的工作集内存 ...

  3. 我叫mt2.0更新公告

    一.2.0版<PVP的远征>军费发放 简体服<我叫MT>2.0版本<PVP的远征>更新在即!为备战新版本,我们宣布10天后(3月10日)发放军费振奋军心. 简体服3 ...

  4. A - Musical Theme + 二分

    #include <bits/stdc++.h> using namespace std; #define LS 2*i #define RS 2*i+1 #define UP(i,x,y ...

  5. canvas常用画法整理

    代码Canvas.htm <!DOCTYPE html> <html lang="en"> <head> <title>canvas ...

  6. 手动释放Linux内存

    查看内存: [root@iZ9dp52tlpqyihuisujjswZ bin]# free -h total used free shared buff/cache available Mem: 3 ...

  7. 移动端 Web 网页调试技巧

    原文出处: 盛瀚钦 本文主要列举了调试本地网页.查看测试环境网页的各种方法,涵盖了PC.iPad.移动端的调试技巧. 本文的不足之处在于,小溪里暂时还没有找到调试位于微信中和安卓各国产浏览器上的网页. ...

  8. Spark Mllib里如何将trainDara训练数据文件里提取第M到第N字段(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第13章 使用决策树二元分类算法来预测分类StumbleUpon数据集

  9. SpringBoot项目取消数据库配置

    1. 错误springboot项目启动时,如果没有配置数据库配置,启动时会抛出如下异常. Description: Cannot determine embedded database driver ...

  10. ListBox,CheckBoxList,DropDownList,RadioButtonList的常见数据绑定

    ListBox,CheckBoxList,DropDownList,RadioButtonList的常见用法 四个都是选择控件,用法大同小异,基本都是指定键值对: 直接加选择项: void way1( ...