不想分页怎么办??-->页面数据的滚动加载
在前几天的一次前台数据展示的时候
为了更好的用户的体验
就想着做一个数据的滚动加载功能
于是简单的查询了网上的实现方式
基本都是在页面加载的时候绑定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请求成功后解析返回的数据即可。祝好运
不想分页怎么办??-->页面数据的滚动加载的更多相关文章
- h5页面列表滚动加载数据
h5列表滚动加载数据很常见,以下分享下今天做的案例: 前言 这个效果实现需要知道三个参数 1. scrollTop -- 滚动条距离顶部的高度 2. scrollHeight -- 当前页面的总高度( ...
- 滚动加载|页面滑到底部加载数据|jquery.endless-scroll插件|使用demo
<html> <head> <link rel="dns-prefetch" href="http://i.tq121.com.cn&quo ...
- 页面滚动动态加载数据,页面下拉自动加载内容 jquery
<!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type=" ...
- Jquery页面滚动动态加载数据,页面下拉自动加载内容
<!DOCTYPE=html> <html> <head> <script src="js/jquery.js" type="t ...
- infinite-scroll插件无限滚动加载数据的使用
网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...
- vue2.0无限滚动加载数据插件
做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...
- 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)
新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...
- 【无限滚动加载数据】—infinite-scroll插件的使用
网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...
- HTML5商城开发一 楼层滚动加载数据
对于楼层加载在以前只是个想法,从来没实现过,刚好项目中碰到,再此总结一下 场景:HTML5,局部商品列表信息滚动(局部滚动条) 1.通过jq设置subCategoryScroll的高度为屏幕显示高度( ...
随机推荐
- Atitit.异步编程 java .net php python js 的比较
Atitit.异步编程 java .net php python js 的比较 1. 1.异步任务,异步模式, APM模式,, EAP模式, TAP 1 1.1. APM模式: Beg ...
- vue2 vue-router2 webpack1
转自:http://www.qinshenxue.com/article/20161106163608.html: 项目地址:https://github.com/qinshenxue/vue2-vu ...
- 0072 Java中的泛型--泛型是什么--泛型类--泛型方法--擦除--桥方法
什么是泛型,有什么用? 先运行下面的代码: public class Test { public static void main(String[] args) { Comparable c=new ...
- 高德地图API INVALID_USER_SCODE问题以及keystore问题
今天这篇文章会给大家介绍三个问题: 1,接入API时出现invalid_user_scode问题 首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题 因为项目需要接 ...
- 基于HTML5自定义文字背景生成QQ签名档
分享一款利用HTML5实现的自定义文字背景应用,首先我们可以输入需要显示的文字,并且为该文字选择一张背景图片,背景图片就像蒙版一样覆盖在文字上.点击生成QQ签名档即可将文字背景融为一体生成另外一张图片 ...
- 一款基于jquery的喜欢动画按钮
今天给大家带来一款基于jquery的喜欢动画按钮.这个实例中给了三种动画特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <p class='heading'> C ...
- lua工具库penlight--03字符串
字符串提取函数 这些方法也是从Python借鉴来的,但索引从1开始.stringx定义了一些函数如isalpha和isdigit, 用来判断字母和数字:startswith和endswith可以方便用 ...
- 实现itoa()
上代码之前先讲个笑话:曾经有位面试官问:“你实现过 唉踢哦诶(音) 吗”? 我第一个想到的是各种OA系统,心想那玩意不多是Java实现的吗...过一会想明白了,瞬间石化... #include < ...
- openvpn 移植之buildroot添加相关选项
openvpn 移植第一步,在buildroot 内添加 openssl ,openvpn , 另外还有一个 RSA 的支持,我不确定这个需要程度如何,但是也添加进去了. buildroot 添加相关 ...
- [Linux]Linux应用程序中添加强制中断处理
注册Ctrl+C的按键signal信号捕捉,在捕捉到该动作后,强制退出应用程序 void handle_sig(int num) { printf( "%s\n", __func_ ...