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

为了更好的用户的体验

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

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

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

然后判断页面触底的时候

进行ajax请求获取数据

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

于是也找了几个demo看了看

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

直接看代码吧

代码中注释也很详细:

  1. $(document).ready(function(){
  2. //页面加载的时候绑定触底滚动加载事件
  3. $(window).bind('scroll',function(){show()});
  4. function show() {
  5. //获取页面首次加载时设置在隐藏文本框中的当前页的值
  6. //在页面会有两个隐藏的文本框
  7. //<input type="hidden" id="currentPage" value="${currentPage }"> 当前页
  8. //<input type="hidden" id="totalPage" value="${totalPage }"> 进入该页面的时候把总页数放到该隐藏域中
  9. var currentPage = $('#currentPage').val();
  10. //获取页面首次加载时设置在隐藏文本框中的总页数值
  11. var totalPage = $('#totalPage').val();
  12. //如果当前页小于总页数 就进入判断
  13. if(currentPage <= totalPage) {
  14. //判断页面是否已经触底 如果触底就调用ajaxRead()方法来进行下一页数据的加载 并将当前页和总页数传过去
  15. if($(window).scrollTop()+$(window).height()>=$(document).height()) {
  16. ajaxRead(currentPage, totalPage);
  17. }
  18. } else {
  19. //取消绑定scroll滚动事件
  20. $(window).unbind('scroll');
  21. //如果数据加载完毕 在blog-main Div后面追加提示语
  22. $('#blog-main').append("<div style='text-align: center;'><h3>拼命更新数据中。。。。。。</h3></div>");
  23. }
  24. }
  25. function ajaxRead(currentPage, totalPage) {
  26. var html= "";
  27. $.ajax({
  28. type:'get',
  29. url:'portal/scrollLoad',
  30. data:{currentPage: currentPage,totalPage:totalPage},
  31. success: function(data){
  32. //获取后台传过来的年鉴列表
  33. var list = eval(data.yearBookJson);
  34. //遍历年鉴列表数据
  35. for (var i = 0; i < list.length; i++) {
  36. html = "<div class='col-md-4 col-sm-4'><article class='blog-teaser'><header>";
  37. html = html + "<img style='width: 326px;height: 135px;' src='<%=basePath%>uploadFiles/uploadImgs/";
  38. html = html + list[i].YEARBOOK+"' alt="+list[i].YEARBOOKNAME;
  39. html = html + "'><h3><a href='portal/nianjiandetail?YEARBOOK_ID="+list[i].YEARBOOK_ID;
  40. html = html + "'>"+list[i].YEARBOOKNAME;
  41. html = html + "</a></h3><hr></header></article></div>";
  42. //在yearBookBox Div后追加拼接的HTML代码
  43. $('#yearBookBox').append(html);
  44. }
  45. //隐藏文本框中的当前页的值
  46. var ajaxchange = $('#currentPage').val();
  47. //本次加载完后隐藏文本框里的当前页的值需要加1 为下一次调用准备
  48. $('#currentPage').val(parseInt(ajaxchange)+1);
  49. }
  50. });
  51. }
  52. });

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. 输入LPCWSTR类型字符串

    LPCWSTR tmp = L"xxx"; char*转到LPCWSTR LPCSTR(charTmp)

  2. linux(二十一):apache服务配置(二)

    1.普通用户进入家文件夹 ​ ​紧接着之前的进度,我们想想博客的实现.每一个用户在登录之后.都是在自己的家文件夹.那么对于我们的要求就是要设置每一个用户的默认公布文件夹为其家文件夹. 接着我们就来实现 ...

  3. python中unicode和unicodeescape

    在python中,unicode是内存编码集,一般我们将数据存储到文件时,需要将数据先编码为其他编码集,比如utf-8.gbk等. 读取数据的时候再通过同样的编码集进行解码即可. #python3 & ...

  4. Nginx、PCRE和中文URL(UTF8编码)rewrite路径重写匹配问题

    最近遇到了使用Nginx 重写中文UTF8编码路径的问题. 才发现默认情况下Nginx的rewrite是不支持UTF8匹配的. 比如: rewrite ^/(..)$ /2个字符文章.html bre ...

  5. TIME_WAIT详解

    1.TCP四次挥手关闭链接过程 2.TIME_WAIT的产生条件主动关闭方在发送四次挥手的最后一个ACK会变为TIME_WAIT状态,保留此状态的时间为两个MSL 3.TIME_WAIT两个MSL的作 ...

  6. layui关闭layer.open打开的页面

    var index = parent.layer.getFrameIndex(window.name); //获取窗口索引parent.layer.close(index);

  7. VS调试-添加命令行参数

    Project -> Properties -> Configuration Properties -> Debugging 在Command Arguments里填上即可

  8. jquery插件-table转Json数据插件

    使 用开源插件Table-to-json: 官方地址:http://lightswitch05.github.io/table-to-json/ 功能说明:将js对象table转换成javascrip ...

  9. 浅谈weblogic与tomcat的区别

    weblogic是用于开发.集成.部署和管理大型分布式web应用.网络应用和数据库应用的java应用服务器,将java的动态功能和java enterprise标准的安全性引入大型网络应用的开发集成部 ...

  10. -/bin/sh: /usr/bin/xxx: not found”

    运行/usr/bin/helloworld命 令是提示“-/bin/sh: /usr/bin/helloworld: not found”,一开始我以为是helloworld没有运行权限,不过我给了它 ...