在前几天的一次前台数据展示的时候

为了更好的用户的体验

就想着做一个数据的滚动加载功能

于是简单的查询了网上的实现方式

基本都是在页面加载的时候绑定scroll事件

然后判断页面触底的时候

进行ajax请求获取数据

然后将数据追加到数据展示层的div后面

于是也找了几个demo看了看

决定自己动手把这个功能实现

直接看代码吧

代码中注释也很详细:

 $(document).ready(function(){
//页面加载的时候绑定触底滚动加载事件
$(window).bind('scroll',function(){show()});
function show() {
//获取页面首次加载时设置在隐藏文本框中的当前页的值
//在页面会有两个隐藏的文本框
//<input type="hidden" id="currentPage" value="${currentPage }"> 当前页
//<input type="hidden" id="totalPage" value="${totalPage }"> 进入该页面的时候把总页数放到该隐藏域中
var currentPage = $('#currentPage').val();
//获取页面首次加载时设置在隐藏文本框中的总页数值
var totalPage = $('#totalPage').val();
//如果当前页小于总页数 就进入判断
if(currentPage <= totalPage) {
//判断页面是否已经触底 如果触底就调用ajaxRead()方法来进行下一页数据的加载 并将当前页和总页数传过去
if($(window).scrollTop()+$(window).height()>=$(document).height()) {
ajaxRead(currentPage, totalPage);
}
} else {
//取消绑定scroll滚动事件
$(window).unbind('scroll');
//如果数据加载完毕 在blog-main Div后面追加提示语
$('#blog-main').append("<div style='text-align: center;'><h3>拼命更新数据中。。。。。。</h3></div>");
}
}
function ajaxRead(currentPage, totalPage) {
var html= "";
$.ajax({
type:'get',
url:'portal/scrollLoad',
data:{currentPage: currentPage,totalPage:totalPage},
success: function(data){
//获取后台传过来的年鉴列表
var list = eval(data.yearBookJson);
//遍历年鉴列表数据
for (var i = 0; i < list.length; i++) {
html = "<div class='col-md-4 col-sm-4'><article class='blog-teaser'><header>";
html = html + "<img style='width: 326px;height: 135px;' src='<%=basePath%>uploadFiles/uploadImgs/";
html = html + list[i].YEARBOOK+"' alt="+list[i].YEARBOOKNAME;
html = html + "'><h3><a href='portal/nianjiandetail?YEARBOOK_ID="+list[i].YEARBOOK_ID;
html = html + "'>"+list[i].YEARBOOKNAME;
html = html + "</a></h3><hr></header></article></div>";
//在yearBookBox Div后追加拼接的HTML代码
$('#yearBookBox').append(html);
}
//隐藏文本框中的当前页的值
var ajaxchange = $('#currentPage').val();
//本次加载完后隐藏文本框里的当前页的值需要加1 为下一次调用准备
$('#currentPage').val(parseInt(ajaxchange)+1);
}
});
}
});

js的代码就这么多,后台业务代码就不展示了,ajax请求成功后解析返回的数据即可。祝好运

不想分页怎么办??-->页面数据的滚动加载的更多相关文章

  1. h5页面列表滚动加载数据

    h5列表滚动加载数据很常见,以下分享下今天做的案例: 前言 这个效果实现需要知道三个参数 1. scrollTop -- 滚动条距离顶部的高度 2. scrollHeight -- 当前页面的总高度( ...

  2. 滚动加载|页面滑到底部加载数据|jquery.endless-scroll插件|使用demo

    <html> <head> <link rel="dns-prefetch" href="http://i.tq121.com.cn&quo ...

  3. 页面滚动动态加载数据,页面下拉自动加载内容 jquery

    <!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type=" ...

  4. Jquery页面滚动动态加载数据,页面下拉自动加载内容

    <!DOCTYPE=html> <html> <head> <script src="js/jquery.js" type="t ...

  5. infinite-scroll插件无限滚动加载数据的使用

    网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...

  6. vue2.0无限滚动加载数据插件

      做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...

  7. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  8. 【无限滚动加载数据】—infinite-scroll插件的使用

    网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...

  9. HTML5商城开发一 楼层滚动加载数据

    对于楼层加载在以前只是个想法,从来没实现过,刚好项目中碰到,再此总结一下 场景:HTML5,局部商品列表信息滚动(局部滚动条) 1.通过jq设置subCategoryScroll的高度为屏幕显示高度( ...

随机推荐

  1. C++11中的继承构造函数

    时间:2014.06.19 地点:基地 ------------------------------------------------------------------------- 一.问题描写 ...

  2. git 的一些笔记

    git config git config存在三个地方 :1./.git/config 项目级别2.~/.gitconfig 用户级别3./etc/gitconfig 系统级别 git config ...

  3. vue的路由使用

    1). 安装 vue-router npm install vue-router --save 2). 新建路由配置 安装成功后,在 src 新建 router 文件夹,然后新建 index.js 文 ...

  4. [linux]signal函数不起作用

    #include "apue.h" #include <sys/wait.h> static void sig_int(int); /* our signal-catc ...

  5. FreeRTOS——1

    以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的特点 FreeRTOS 的主要特点如下:1. 支持抢占式调度,合作式调度和时间片调度.2 ...

  6. hdu1331(记忆化搜索)

    #include<iostream> #include<stdio.h> #include<string.h> using namespace std; typed ...

  7. OpenERP Framework API存档

    一. openerp.Widget 方法列表 init:function(parent) destroy:function() appendTo:function(target) prependTo: ...

  8. vsftpd 服务移植出现 500 oops : socket 解决

    一开始, 在vsftpd 打印的错误是 500 oops : socket 在 vsftpd 源码里面找到 buildroot-2016.05/output/build/vsftpd-3.0.3/sy ...

  9. oozie开发注意事项

    ooziejob执行后 1. job.properties.coordinatior.xml中设置的值都是不可变的,除非将job kill掉,然后重新调度. oozie job -kill 00000 ...

  10. Js常用插件介绍

    *各种JS功能介绍 1.zDialog.js 各种弹窗插件详细案例:http://www.2ky.cn/Pri_upfile/txdemo/0811/zDialog/zDialogDemo.html ...