dropLoad.js移动端分页----Vue数据每次清空累加

dropLoad.js移动端使用

1、需要引入  dropload   必要的两个文件dropload.css 、dropload.min.js

此案例在vue项目中使用过程:

var vm = new Vue({
el:‘#app‘,
    data:{
        page:1,         //当前页数
        dropload:null,   //dropload定义
     limit :10,       //请求数据的条数

    },
    created: function () {

    },
    mounted:function(){
    },
    methods:{
     //请求分页数据后在排序,会造成与上次分页出展示数据不一致,这里实现数据累计limt请求数据为总显示数据条数
        limitFn(){
            var self = this;
            var totalNum = self.datainfoList.length;
            self.limit = totalNum;
        },
        dealerSelectFn:function(){
            var self = this;
            self.dealer_id = dealer_id;
            methods.ajax("/index.php/Specialcar/SpecialInfo/specialList",{
                page:self.page,
                limit:self.limit,
            },function(res){
        //res.data.list 为要展示的数据列表
                if(res.data.list.length>0){
            //每次请求出的新数据与上次数据进行累计,concat

                    self.datainfoList=self.datainfoList.concat(res.data.list);
                }
        //分页请求的最后一次数据为空,所有length为0时提示 “没有更多信息了”

                if(self.page>1 && res.data.list.length==0){
                    methods.prompt("没有更多信息了!")
                    return false;
                };
                //分页code
                self.setOrderList(self.datainfoList)
            })
        },
        setOrderList(data){
            var self = this;
            if(self.dropload){
                self.dropload.resetload();
            }else{
                //分页   ------   加载更多
                self.dropload=$(‘.order-list‘).dropload({
                    scrollArea : window,
                    autoLoad:false,
                    loadDownFn : function(me){
                        self.page++;
                        self.dealerSelectFn();
                    }
                })
            }
        },
    },
    filters: {

    }
});
  

/** * dropload * 西门(http://ons.me/526.html) * 0.9.0(160215) */!function(a) {    "use strict";    function g(a) {        a.touches || (a.touches = a.originalEvent.touches)    }    function h(a, b) {        b._startY = a.touches[0].pageY,        b.touchScrollTop = b.$scrollArea.scrollTop()    }    function i(b, c) {        c._curY = b.touches[0].pageY,        c._moveY = c._curY - c._startY,        c._moveY > 0 ? c.direction = "down" : c._moveY < 0 && (c.direction = "up");        var d = Math.abs(c._moveY);        "" != c.opts.loadUpFn && c.touchScrollTop <= 0 && "down" == c.direction && !c.isLockUp && (b.preventDefault(),        c.$domUp = a("." + c.opts.domUp.domClass),        c.upInsertDOM || (c.$element.prepend(‘<div class="‘ + c.opts.domUp.domClass + ‘"></div>‘),        c.upInsertDOM = !0),        n(c.$domUp, 0),        d <= c.opts.distance ? (c._offsetY = d,        c.$domUp.html(c.opts.domUp.domRefresh)) : d > c.opts.distance && d <= 2 * c.opts.distance ? (c._offsetY = c.opts.distance + .5 * (d - c.opts.distance),        c.$domUp.html(c.opts.domUp.domUpdate)) : c._offsetY = c.opts.distance + .5 * c.opts.distance + .2 * (d - 2 * c.opts.distance),        c.$domUp.css({            height: c._offsetY        }))    }    function j(b) {        var c = Math.abs(b._moveY);        "" != b.opts.loadUpFn && b.touchScrollTop <= 0 && "down" == b.direction && !b.isLockUp && (n(b.$domUp, 300),        c > b.opts.distance ? (b.$domUp.css({            height: b.$domUp.children().height()        }),        b.$domUp.html(b.opts.domUp.domLoad),        b.loading = !0,        b.opts.loadUpFn(b)) : b.$domUp.css({            height: "0"        }).on("webkitTransitionEnd mozTransitionEnd transitionend", function() {            b.upInsertDOM = !1,            a(this).remove()        }),        b._moveY = 0)    }    function k(a) {        a.opts.autoLoad && a._scrollContentHeight - a._threshold <= a._scrollWindowHeight && m(a)    }    function l(a) {        a._scrollContentHeight = a.opts.scrollArea == b ? e.height() : a.$element[0].scrollHeight    }    function m(a) {        a.direction = "up",        a.$domDown.html(a.opts.domDown.domLoad),        a.loading = !0,        a.opts.loadDownFn(a)    }    function n(a, b) {        a.css({            "-webkit-transition": "all " + b + "ms",            transition: "all " + b + "ms"        })    }    var f, b = window, c = document, d = a(b), e = a(c);    a.fn.dropload = function(a) {        return new f(this,a)    }    ,    f = function(a, b) {        var c = this;        c.$element = a,        c.upInsertDOM = !1,        c.loading = !1,        c.isLockUp = !1,        c.isLockDown = !1,        c.isData = !0,        c._scrollTop = 0,        c._threshold = 0,        c.init(b)    }    ,    f.prototype.init = function(f) {        var l = this;        l.opts = a.extend(!0, {}, {            scrollArea: l.$element,            domUp: {                domClass: "dropload-up",                domRefresh: ‘<div class="dropload-refresh">↓下拉刷新</div>‘,                domUpdate: ‘<div class="dropload-update">↑释放更新</div>‘,                domLoad: ‘<div class="dropload-load"><span class="loading"></span>加载中...</div>‘            },            domDown: {                domClass: "dropload-down",                domRefresh: ‘<div class="dropload-refresh">↑上拉加载更多</div>‘,                domLoad: ‘<div class="dropload-load"><span class="loading"></span>加载中...</div>‘,                domNoData: ‘<div class="dropload-noData">暂无数据</div>‘            },            autoLoad: !0,            distance: 50,            threshold: "",            loadUpFn: "",            loadDownFn: ""        }, f),        "" != l.opts.loadDownFn && (l.$element.append(‘<div class="‘ + l.opts.domDown.domClass + ‘">‘ + l.opts.domDown.domRefresh + "</div>"),        l.$domDown = a("." + l.opts.domDown.domClass)),        l._threshold = l.$domDown && "" === l.opts.threshold ? Math.floor(1 * l.$domDown.height() / 3) : l.opts.threshold,        l.opts.scrollArea == b ? (l.$scrollArea = d,        l._scrollContentHeight = e.height(),        l._scrollWindowHeight = c.documentElement.clientHeight) : (l.$scrollArea = l.opts.scrollArea,        l._scrollContentHeight = l.$element[0].scrollHeight,        l._scrollWindowHeight = l.$element.height()),        k(l),        d.on("resize", function() {            l._scrollWindowHeight = l.opts.scrollArea == b ? b.innerHeight : l.$element.height()        }),        l.$element.on("touchstart", function(a) {            l.loading || (g(a),            h(a, l))        }),        l.$element.on("touchmove", function(a) {            l.loading || (g(a, l),            i(a, l))        }),        l.$element.on("touchend", function() {            l.loading || j(l)        }),        l.$scrollArea.on("scroll", function() {            l._scrollTop = l.$scrollArea.scrollTop(),            "" != l.opts.loadDownFn && !l.loading && !l.isLockDown && l._scrollContentHeight - l._threshold <= l._scrollWindowHeight + l._scrollTop && m(l)        })    }    ,    f.prototype.lock = function(a) {        var b = this;        void 0 === a ? "up" == b.direction ? b.isLockDown = !0 : "down" == b.direction ? b.isLockUp = !0 : (b.isLockUp = !0,        b.isLockDown = !0) : "up" == a ? b.isLockUp = !0 : "down" == a && (b.isLockDown = !0,        b.direction = "up")    }    ,    f.prototype.unlock = function() {        var a = this;        a.isLockUp = !1,        a.isLockDown = !1,        a.direction = "up"    }    ,    f.prototype.noData = function(a) {        var b = this;        void 0 === a || 1 == a ? b.isData = !1 : 0 == a && (b.isData = !0)    }    ,    f.prototype.resetload = function() {        var b = this;        "down" == b.direction && b.upInsertDOM ? b.$domUp.css({            height: "0"        }).on("webkitTransitionEnd mozTransitionEnd transitionend", function() {            b.loading = !1,            b.upInsertDOM = !1,            a(this).remove(),            l(b)        }) : "up" == b.direction && (b.loading = !1,        b.isData ? (b.$domDown.html(b.opts.domDown.domRefresh),        l(b),        k(b)) : b.$domDown.html(b.opts.domDown.domNoData))    }}(window.Zepto || window.jQuery);

原文地址:https://www.cnblogs.com/liubingyjui/p/12017339.html

时间: 2024-11-10 17:09:30

dropLoad.js移动端分页----Vue数据每次清空累加的相关文章

纯js写的分页表格数据为json串

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getSchem

移动端下拉分页加载插件dropload.js

一.dropload.js下载地址: http://www.jq22.com/jquery-info6960 该地址有dropload.js的基础说明文档,下载的压缩包有相应的demo 二.依赖 Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用) Zepto or jQuery 1.7+,recommend to use jQuery 2.x(not use them at the same time) 三.bug及解决方案 1.小屏手机不加载问题

移动端翻页插件dropload.js(支持Zepto和jQuery)

一. 声明 代码来源:github上的dropload项目. 二. 问题 dropload.js提供了最基本的上拉翻页,下拉刷新功能.对于由服务端一次返回所有数据的情况基本通用. 但是,需求往往不是服务端一次性返回所有数据,往往还要支持服务端分页,搜索,排序,多条件筛选等功能.(比较类似美团美食的界面) 三. 解决方案. 改进1:由于有分页,搜索,排序,多条件筛选功能,可能都不需要上拉,进到页面就没有数据. 例如:搜索一个服务端不存在的名字. 所以,添加接口设置setHasData. MyDro

Vue.js的表格分页组件

转自:http://www.cnblogs.com/Leo_wl/p/5522299.html 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage. 不了解Vue.js的童鞋可以移步我的上一篇文章<浅谈Vue.js>了解一下. BootPage组件简介 其实也不是啥高大上的组件了,相反确实一个简单的表格分页组件而已,主要是自己最近项目中需要一个表格分页组件,而Vue官方组件

(swiper+dropload).js实现选项卡下拉加载分页

依赖库:swiper.min.js+dropload.min.js //dropload var tabIndex = 0; var tab1LoadEnd = false; var tab2LoadEnd = false; var counter = 0; // 每页展示4个 var num = 10; var pageStart = 0, pageEnd = 0; var dropload = $('.swiper-slide').dropload({ scrollArea: window,

基于Vue.js的表格分页组件

BootPage组件简介 其实也不是啥高大上的组件了,相反确实一个简单的表格分页组件而已,主要是自己最近项目中需要一个表格分页组件,而Vue官方组件库里分页组件都功能太强大或者没有适合我的,所以就自己写了一个凑合着用,或许有人和我一样需要这样一个简单的分页组件来实现简单的分页功能,我便在这里分享一下,大家自觉填坑咯. 如需高大上的组件,可以移步Vue官方组件库:https://github.com/vuejs/awesome-vue#libraries--plugins BootPage是一款支

dropload.js(上拉加载插件使用过程中遇到的坑)

dropload.js相关介绍和使用以及demo下载详见:https://github.com/ximan/dropload (原文出处) 之前因为项目需要一个上拉加载的效果,然后无意中看到了此插件,用了之后感觉挺好用的,就是坑太多,下面列出一些我在实际使用中遇到的问题. 注:如果在使用该插件的时候遇到问题,确实无法解决,也没有人能帮你解决,建议换插件或者加群,群号也在上面的链接里面. 问题1:给某个元素(比如查询按钮)加上onclick事件以后,不管点几次,加载效果也会增加几个,如下图所示 解

Bootstrap-table服务端分页

bootstarp-table服务端分页 $('#test-table').bootstrapTable({ //请求方法 method: 'get', //是否显示行间隔色 striped: true, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) cache: false, //是否显示分页(*) pagination: true, //是否启用排序 sortable: false, //排序方式 sortOrder: "asc", //初始化加载第一

下拉刷新,上拉加载功能--dropload.js的使用

这段时间工作太忙了,没时间更新博客内容,在这段时间,也学习到了不少新的知识.今天先整理一下dropload.js的使用方法吧,这个是在为项目中使用过的插件,很好用,但是真正用到项目中还是会有一些小小的问题,这个要具体问题具体分析了. 插件下载地址:https://github.com/ximan/dropload.大家也可以直接看源码        我的代码地址: https://github.com/dreamITGirl/projectStudy,大家可以在里面查找. 首先,这个插件是依赖于