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

官网上有对infinite-scroll的详细描述,但一般人即使看未必看得懂,看得懂未必就调试成功。所以借今晚有点时间,把跑通的例子供大家借鉴。

一.无限滚动概念

首先,它是基于Jquery的,另外还要明白无限滚动的概念:无限滚动的实现原理就是当你在网页上的滚动条滚动到离网页底部一定长度的时候,触发某ajax函数(infinite-scroll内已经封装好),往后台加载文件或者数据,又或者从外部引入静态html形式文件。

二.探讨infinite-scroll

1.从网页头引入两个js文件,注意必须先放jquery的

  1. <script src="css/infinite-scroll/jquery-1.6.4.js"></script>
  2. <script src="css/infinite-scroll/jquery.infinitescroll.js"></script>
<script src="css/infinite-scroll/jquery-1.6.4.js"></script>
<script src="css/infinite-scroll/jquery.infinitescroll.js"></script>

2.之后在网页头自己写一个js脚本

  1. <script>
  2. $(document).ready(function (){
  3. $("#container").infinitescroll({
  4. navSelector: "#navigation",      //页面分页元素--本页的导航,意思就是一个可以触发ajax函数的模块
  5. nextSelector: "#navigation a",  //下一页的导航
  6. itemSelector: ".scroll " ,             //此处我用了类选择器,选择的是你要加载的那一个块(每次载入的数据放的地方)
  7. animate: true,                          //加载时候时候需要动画,默认是false
  8. maxPage: 3,                            //最大的页数,也就是滚动多少次停。这个页码必须得要你从数据库里面拿
  9. });
  10. });
  11. </script>
 <script>
$(document).ready(function (){
$("#container").infinitescroll({
navSelector: "#navigation", //页面分页元素--本页的导航,意思就是一个可以触发ajax函数的模块
nextSelector: "#navigation a", //下一页的导航
itemSelector: ".scroll " , //此处我用了类选择器,选择的是你要加载的那一个块(每次载入的数据放的地方)
animate: true, //加载时候时候需要动画,默认是false
maxPage: 3, //最大的页数,也就是滚动多少次停。这个页码必须得要你从数据库里面拿
});
});
</script>

3.或许你看到这里还是不太清楚网页怎么定义,这里给出我的demo,希望可以有帮助

  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="utf-8">
  7. <title>无限翻页效果</title>
  8. <script src="css/infinite-scroll/jquery-1.6.4.js"></script>
  9. <script src="css/infinite-scroll/jquery.infinitescroll.js"></script>
  10. <script src="css/infinite-scroll/test/debug.js"></script>
  11. <script>
  12. $(document).ready(function (){               //别忘了加这句,除非你没学Jquery
  13. $("#container").infinitescroll({
  14. navSelector: "#navigation",     //页面分页元素--成功后自动隐藏
  15. nextSelector: "#navigation a",
  16. itemSelector: ".scroll " ,
  17. animate: true,
  18. maxPage: 3,
  19. });
  20. });
  21. </script>
  22. </head>
  23. <body>
  24. <div id="container">            <!-- 容器 -->
  25. <div class="scroll">         <!-- 每次要加载数据的数据块-->
  26. 第一页内容第一页内容<br>
  27. 第一页内容<br>第一页内容<br>第一页内容<br>
  28. 第一页内容<br>第一页内容<br>第一页内容<br>
  29. 第一页内容<br>第一页内容<br>第一页内容
  30. </div>
  31. </div>
  32. <div id="navigation" align="center">         <!-- 页面导航-->
  33. <a href="user/list?page=1"></a>        <!-- 此处可以是url,可以是action,要注意不是每种html都可以加,是跟当前网页有相同布局的才可以。另外一个重要的地方是page参数,这个一定要加在这里,它的作用是指出当前页面页码,没加载一次数据,page自动+1,我们可以从服务器用request拿到他然后进行后面的分页处理。-->
  34. </div>
  35. </body>
  36. </html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>无限翻页效果</title>
<script src="css/infinite-scroll/jquery-1.6.4.js"></script>
<script src="css/infinite-scroll/jquery.infinitescroll.js"></script>
<script src="css/infinite-scroll/test/debug.js"></script>
<script>
$(document).ready(function (){ //别忘了加这句,除非你没学Jquery
$("#container").infinitescroll({
navSelector: "#navigation", //页面分页元素--成功后自动隐藏
nextSelector: "#navigation a",
itemSelector: ".scroll " ,
animate: true,
maxPage: 3,
});
});
</script>
</head>
<body>
<div id="container"> <!-- 容器 -->
<div class="scroll"> <!-- 每次要加载数据的数据块-->
第一页内容第一页内容<br>
第一页内容<br>第一页内容<br>第一页内容<br>
第一页内容<br>第一页内容<br>第一页内容<br>
第一页内容<br>第一页内容<br>第一页内容
</div>
</div>
<div id="navigation" align="center"> <!-- 页面导航-->
<a href="user/list?page=1"></a> <!-- 此处可以是url,可以是action,要注意不是每种html都可以加,是跟当前网页有相同布局的才可以。另外一个重要的地方是page参数,这个一定要加在这里,它的作用是指出当前页面页码,没加载一次数据,page自动+1,我们可以从服务器用request拿到他然后进行后面的分页处理。-->
</div>
</body>
</html>

三.细微部分

1.js函数里还可定义的其他属性:

  1. debug        : true,                                         //用于调试,如果需要用到,只需在网页头引入官网demo里的debug.js文件
  2. loadingImg   : "/img/loading.gif",                   //加载时候显示的进度条,用户可以自定义
  3. loadingText  : "Loading new posts...",            //加载时显示的文字
  4. extraScrollPx: 50,                                            //离网页底部多少像素时触发ajax
  5. donetext     : "I think we've hit the end, Jim" ,     //加载完数据(到达底部时)显示的文字提醒
  6. errorCallback: function(){},                             //加载完数据后的回调函数,可选
  debug        : true,                                         //用于调试,如果需要用到,只需在网页头引入官网demo里的debug.js文件
loadingImg : "/img/loading.gif", //加载时候显示的进度条,用户可以自定义
loadingText : "Loading new posts...", //加载时显示的文字
extraScrollPx: 50, //离网页底部多少像素时触发ajax
donetext : "I think we've hit the end, Jim" , //加载完数据(到达底部时)显示的文字提醒
errorCallback: function(){}, //加载完数据后的回调函数,可选

其他属性暂不作过多介绍

2.数据的载入方式

①html  :如果你已经有固定的数据块,可以放到html里面加载静态页面。

②json  :可以用后台返回json的方式,返回的时候要指定temple里面的html模版,否则会出错。

③我上面例子用的其实也是json,前台在Action层把数据取出后再用StringBuilder拼装成html格式的字符串返回前台。(个人习惯)

3.数据分页方式

本例用hibernate进行数据分页。

以上内容仅作参考,时间问题暂且收笔。

这里给出一个demo下载,不是这个例子但是原理是一样的,希望有帮助。

【无限滚动加载数据】—infinite-scroll插件的使用的更多相关文章

  1. PHP+InfiniteScroll实现网页无限滚动加载数据实例

    PHP+InfiniteScroll实现网页无限滚动加载数据实例,实现原理:当滚动条到底离网页底部一定长度的时候,向后台发送页数并获取数据. 首先我们在页面上先放置10条数据,即第一页,每一项都是p标 ...

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

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

  3. Vue无限滚动加载数据

    Web项目经常会用到下拉滚动加载数据的功能,今天就来种草Vue-infinite-loading 这个插件,讲解一下使用方法! 第一步:安装 npm install vue-infinite-load ...

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

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

  5. AngularJS 无限滚动加载数据控件 ngInfiniteScroll

    在开发中我们可能会遇到滚动鼠标到浏览器底部实现数据的加载,js和jquery实现都不复杂都是既然AngularJS提供现成的我们怎么不用昵. ng-infinite-scroll.js这个组件则可以实 ...

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

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

  7. Angular: 使用 RxJS Observables 来实现简易版的无限滚动加载指令

    我使用 angular-cli 来搭建项目. ng new infinite-scroller-poc --style=scss 项目生成好后,进入 infinite-scroller-poc 目录下 ...

  8. 使用 Angular 和 RxJS 实现的无限滚动加载

    无限滚动加载应该是怎样的? 无限滚动加载列表在用户将页面滚动到指定位置后会异步加载数据.这是避免寻主动加载(每次都需要用户去点击)的好方法,而且它能真正保持应用的性能.同时它还是降低带宽和增强用户体验 ...

  9. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

    通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无 ...

随机推荐

  1. All Discs Considered(拓扑排序)

    http://poj.org/problem?id=1778 题意:有两个DVD,第一个DVD上有编号为1~n1的安装包,第二个DVD上有编号为n1+1~n1+n2的安装包,给出m组关系(a,b) 表 ...

  2. ckeditor详细设置

    CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ...

  3. [Swift通天遁地]二、表格表单-(9)快速创建一个美观强大的表单

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. [Swift通天遁地]三、手势与图表-(2)监听手势事件自由拖动图像视图

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. List 序列化

    序列化list http://kchen.cnblogs.com/ 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法 我们 ...

  6. Kafka详解与总结(三)

    Kafka分片存储机制 几个kafka重要概念: Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群. Topic:一类消息,例如pa ...

  7. phonegap在eclipse上的安装

    1.首先安装好eclipse 2.下载安装好sdk 3.下载安装好adt 4.在这个地方下载好phonegap的包,https://codeload.github.com/phonegap/phone ...

  8. ACM_巧克力

    Chocolate,Chocolate Time Limit: 2000/1000ms (Java/Others) Problem Description: 都说发神喜欢吃巧克力,有一次发神徒弟买了一 ...

  9. Android json 数据解析

    1.json格式 2.json解析 3.gson解析 4.fastjson解析 一.Json格式 json一种轻量级的数据交换格式.在网络上传输交换数据一般用xml, json. 两种结构: 1)对象 ...

  10. Spring学习笔记_day01_ioc

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! Spring_day01 spring是一站式的框架, ...