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

摘要:
在互联网上使用无限scloll插件的例子很少。官方网站上有无限滚动的详细描述,但即使普通人不理解,如果理解了,也可能无法成功调试。1、无限滚动的概念基于Jquery。此外,我们应该理解无限滚动的概念。无限滚动的实现原理是触发ajax函数将文件或数据加载到后台,或者在页面上的滚动条从页面底部滚动到一定长度时从外部导入静态html文件。2、 讨论无限滚动1。从网页标题引入两个js文件。注意,jquery的[javascript]viewplatecopyprint必须放在第一位?

网上对于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="http://t.zoukankan.com/css/infinite-scroll/jquery-1.6.4.js"></script>
<script src="http://t.zoukankan.com/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="http://t.zoukankan.com/css/infinite-scroll/jquery-1.6.4.js"></script>
<script src="http://t.zoukankan.com/css/infinite-scroll/jquery.infinitescroll.js"></script>
<script src="http://t.zoukankan.com/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   align="center">         <!-- 页面导航-->
        <a href="http://t.zoukankan.com/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插件的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue中ref的使用(this.$refs获取为undefined)【cocos2d-js官方文档】二十一、v3相对于v2版本的api变动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

less的基本用法

Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。 使用方式 两种使用方式:第一种全局安装less,利用命令编译less;第二种直接引入less.js. npm安装 npm instal...

vue-构建app项目

以下记录vue-cli 3构建app项目的步骤。 一、初始化配置,并运行启动app 1、安装nodeJS,git ,配置环境,Vue CLI 3.x 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)。 2、安装vue-cli ,命令:npm install -g @vue/cli 3、创建项目:vue create mapp-demo 推...

CSS3之边框图片border-image

CSS3中有关border的属性,还有很多,今天我将为大家介绍一个很好玩的属性——Border-image。有了CSS3之边框图片Border-image,我们可以轻松搞定圆角,轻松搞定很多之前难搞的东东。 一、border-image的语法 1、border-image-source border-image-source:url(image);/*im...

css3中动画animation的应用

<!DOCTYPE html> <html> <head> <style> /*@-webkit-keyframes anim1 { // 规定动画。 0% { Opacity: 0; font-size: 12px; } 100% { Opacity: 1; font-size: 34px;...

学习CSS之用CSS绘制一些基本图形

一、三角形 如下图,通过设置 border 的大小和颜色可以形成四个三角形: 上图对应的代码为: /*三角形*/ .triangle{ 0; height:0; border-top:100pxsolidgreen; border-right:100pxsolidred; border-bottom:100pxsolidblue; border-lef...

webpack4 css添加浏览器前缀 postcss-loader

自动添加浏览器前缀 ,我们这里使用postcss-loader 首先 cnpm install --save-dev postcss-loader autoprefixer 我这里用的cnpm ,npm也可以下载 接下来是配置 在网上查了相关文档发现需要新建一个 postcss.config.js 文件来对 postcss-loader 配置。 第一种配置...