快速浏览更多在线 Demo

想查看源代码,可以自行F12,或在github中直接查看源码,或者欢迎直接留言。

/****
desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码
ajaxdata_url ajax异步的URL 如data.php
page_val_name ajax异步的URL中的页码参数名 如pageno
page_no 初始加载页码,默认1 [如2,则与前面两参数结合为data.php?pageno=2]
is_lazyload 是否开启懒加载
page_count 总页数
empty_msg 没有数据的时候提示(可传输图片)
ending_msg 最大页码显示提示
***/
$.fn.list_data = function (options) {
//参数
var This = $(this);
var flag = false;//flag为false时为初次加载,防止不断加载
var defaults = {
ajaxdata_url: '',
page_val_name: 'current',
page_no: 1,
page_count: '',
is_lazyload: true,
loading_msg: '加载中...',
empty_msg: '没有相关数据!',
ending_msg: '没有更多数据了!'
};
var opt = $.extend(defaults, options) //没有数据的提示语
if (opt.page_count <= 0) {
This.html("<div class='ui-no-msg'>" + opt.empty_msg + "</div>");
return true;
} //获取页码,暂时不会用到
var get_return_page = function () {
/*var url = location.href;
var page = '';
if (url.indexOf("#") > 0) {
var arr = url.split("#");
var pagestr = arr[1];
if (pagestr.indexOf("_") > 0) {
var arr2 = pagestr.split("_");
var page = arr2[0];
}
}
if (page == '' || page == undefined) {
return 1;
} else {
return page;
}*/
return opt.page_no;
} //基础参数
var page = get_return_page() * 1;
var page_up = page;
var page_down = page; //异步加载数据
var loadmore = function (page, pos) {
var loading = "<div class='ajax-loading'>" + opt.loading_msg + "</div>";
$.ajax({
type: "GET",
url: opt.ajaxdata_url + "&" + opt.page_val_name + "=" + page,
beforeSend: function () {
$(".ajax-loading").remove();
$(".ui-no-msg").remove();
if (pos == 'before') {
$(loading).insertBefore(This);
} else {
$(loading).insertAfter(This);
}
$(".ajax-loading").show();
flag = true;
},
dataType: "html",
error: function () {
//This.html("<div class='ui-no-msg'>数据异常,请刷新重试!</div>");
$("<div class='ui-no-msg'>数据异常,请刷新重试!</div>").appendTo(This);
$(".ajax-loading").remove();
},
success: function (content) {
flag = false;
content = $.parseHTML(content);
if (pos == 'before') {
$(content).prependTo(This);
} else {
$(content).appendTo(This);
}
$(".ajax-loading").remove();
$(".ui-no-msg").remove(); //是否开启懒加载
if (opt.is_lazyload == true) {
lazyLoadImgs(This);
}
} });
} //懒加载
function lazyLoadImgs(e) {
e.find("img").lazyload({
effect: "show",
event: "sporty"
});
var timeout = setTimeout(function () { e.find("img").trigger("sporty") }, 500);
} //初始加载
if (flag == false) {
loadmore(page, 'after'); $(window).scroll(function () {
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height(); //滚动到顶部
if (scrollTop == 0) {
if (page_up > 1) {
page_up--;
loadmore(page_up, 'before');//如不需要向上滚动加载,则注释掉此行
}
} else {
//滚动到底部
if (scrollTop + windowHeight >= (scrollHeight - 200)) {
if (page_down < opt.page_count) {
page_down++;
loadmore(page_down, 'after');
} else {
$(".ajax-ending").remove();
$("<div class='ajax-ending'>" + opt.ending_msg + "</div>").appendTo(This);
$(".ajax-ending").delay(2000).hide();
}
}
}
});
} }

使用方法

    $("#obj").list_data({
ajaxdata_url : data.php,
page_count : 100,
page_val_name: 'current_page',
page_no: 2,
});

向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)[上拉加载组件]的更多相关文章

  1. Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向

    很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷 ...

  2. mui实现分页上拉加载更多 下拉刷新数据的简单实现 移动端下拉上拉

    空下来把mui上拉加载更多,下拉刷新数据做了一个简单的实现,希望可以帮助到需要的朋友 demo项目的结构 <!DOCTYPE html> <html> <head> ...

  3. js 前端实现下拉刷新 上拉加载

    效果 css html,body{ height:100%; // 其他界面未设置html 无法监听scroll } /* 下拉刷新 */ .refresh-loading { transition: ...

  4. vue.js移动端app实战4:上拉加载以及下拉刷新

    上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到. 跟横向滚动一样,我们还是采用better-scroll这个库来实现.由于better已经更新了新的版本,之前是0.几 ...

  5. 利用iscroll实现上拉加载下拉刷新

    1.首先引用isScroll插件 说明:页面加载时初始化isScroll,然后调用pullDownAction()和pullUpAction(),每次切换tab时,只需要对pullDownAction ...

  6. react-native 自定义 下拉刷新 / 上拉加载更多 组件

    1.封装 Scroller 组件 /** * 下拉刷新/上拉加载更多 组件(Scroller) */ import React, {Component} from 'react'; import { ...

  7. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  8. DCloud-MUI:下拉刷新、上拉加载

    ylbtech-DCloud-MUI:下拉刷新.上拉加载 1. 下拉刷新返回顶部 0. http://dev.dcloud.net.cn/mui/pulldown/ 1. 概述 为实现下拉刷新功能,大 ...

  9. mui的上拉加载更多 下拉刷新 自己封装的demo

    ----------------------------------------------- 这是一个非常呆萌的程序妹子,深夜码的丑代码------------------------------- ...

随机推荐

  1. Linux各个目录的作用及内容

    1)根目录“/”    根目录位于目录结构的最顶层,用斜线(/)表示,类似于Windows操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件. 2)/bin    /bin 目录又称为二 ...

  2. ASP.NET中Ajax的用法

    在ASP.NET中应用Ajax的格式如下: 前台代码(用JQuery库) $.ajax({ type: "POST", async: true, url: "../Aja ...

  3. 简单的C语言文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  4. 百度CDN

    地址如下: http://cdn.code.baidu.com/

  5. JDBC值事务

    事务的四大特性: 原子性, 一致性(比如说A给B转账,A转了之后B的账户增加了,两个都完成才叫一致性),隔离性(A给B转账,A给C转账,AB和AC并发是无关的),永久性(转账之后 不可能复原,就是说不 ...

  6. apache极简配置虚拟机

    在apache的httpd.conf文件最后添加: Listen 81<VirtualHost *:81> DocumentRoot E:/CM/wx_shop/ecshop</Vi ...

  7. 移动端web开发的一些知识点

    整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成 ...

  8. git 命令熟悉

    1. git clone +ssh 地址=将远程代码download 到本地:要在根目录执行这个操作 2.查看所有分支:git branch -a (当前分支前带星号) 3.切换到某个分支:git c ...

  9. ssl访问的原理

    本文无图文对照解释,但力求通俗易懂.请读者边读边手绘各个流程,一便于理解.      总体交互流程如下      1. 客户端发起HTTPS请求 这个没什么好说的,就是用户在浏览器里输入一个https ...

  10. javaSE基础07

    javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...