jQuery ScrollPagination

萧亦
2023-12-01

看着腾讯微博的ScrollPagination挺好玩的,就在网上找找,写了个demo玩玩。

JQuery ScrollPagination :
http://andersonferminiano.com/jqueryscrollpagination/ 

在该插件基础上修修改改。

 

1. 简单的servlet代码 

DemoServlet

 1  /**
 2   * Create by: zhuyoufeng
 3   * Date: 12-4-4
 4    */
 5  public  class DemoServlet  extends HttpServlet {
 6      protected  void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
 7         doGet(request, response);
 8     }
 9 
10      protected  void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
11         List<String> content =  new ArrayList<String>();
12          for ( int i = 0; i < 20; i++) {
13             content.add("Let's learn how to implement Scroll Pagination" + i);
14         }
15         request.setAttribute("content", content);
16         request.getRequestDispatcher("/jsp/demo.jsp").forward(request, response);
17     }

18 } 

 

PaginationServlet 

 1  /**
 2   * Create by: zhuyoufeng
 3   * Date: 12-4-4
 4    */
 5  public  class PaginationServlet  extends HttpServlet {
 6      protected  void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
 7         doGet(request, response);
 8     }
 9 
10      protected  void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
11         StringBuilder sb =  new StringBuilder();
12         sb.append("{\"root\":[");
13          for ( int i = 0; i < 20; i++) {
14             sb.append("{\"content\":\"New:Let's learn how to implement Scroll Pagination.\"},");
15         }
16         String str = sb.substring(0, sb.length() - 1) + "]}";
17         response.getWriter().println(str);
18     }

19 }

 

 2. 修改后的scrollpagination

 1  /*
 2   **    Anderson Ferminiano
 3   **    contato@andersonferminiano.com -- feel free to contact me for bugs or new implementations.
 4   **    jQuery ScrollPagination
 5   **    28th/March/2011
 6   **    http://andersonferminiano.com/jqueryscrollpagination/
 7   **    You may use this script for free, but keep my credits.
 8   **    Thank you.
 9    */
10 
11 ( function ($) {
12 
13 
14     $.fn.scrollPagination =  function (options) {
15          var opts = $.extend($.fn.scrollPagination.defaults, options||{});
16          var target = opts.scrollTarget;
17          if (target ==  null) {
18             target = obj;
19         }
20         opts.scrollTarget = target;
21          return  this.each( function () {
22             $.fn.scrollPagination.init($( this), opts);
23         });
24 
25     };
26 
27     $.fn.stopScrollPagination =  function () {
28          return  this.each( function () {
29             $( this).attr('scrollPagination', 'disabled');
30         });
31 
32     };
33 
34     $.fn.scrollPagination.loadContent =  function (obj, opts) {
35          var target = opts.scrollTarget;
36          var mayLoadContent = $(target).scrollTop() + opts.heightOffset >= $(document).height() - $(target).height();
37          if (mayLoadContent) {
38              if (opts.beforeLoad !=  null) {
39                 opts.beforeLoad();
40             }
41             $(obj).children().attr('rel', 'loaded');
42             $.ajax({
43                 type:'POST',
44                 url:opts.contentPage,
45                 data:opts.contentData,
46                 success: function (data) {
47                      // call your own function to load the content
48                      opts.loader(data);
49                      var objectsRendered = $(obj).children('[rel!=loaded]');
50 
51                      if (opts.afterLoad !=  null) {
52                         opts.afterLoad(objectsRendered);
53                     }
54                 },
55                 dataType:opts.dataType
56             });
57         }
58 
59     };
60 
61     $.fn.scrollPagination.init =  function (obj, opts) {
62          var target = opts.scrollTarget;
63         $(obj).attr('scrollPagination', 'enabled');
64 
65         $(target).scroll( function (event) {
66              if ($(obj).attr('scrollPagination') == 'enabled') {
67                 $.fn.scrollPagination.loadContent(obj, opts);
68             }
69              else {
70                 event.stopPropagation();
71             }
72         });
73 
74         $.fn.scrollPagination.loadContent(obj, opts);
75 
76     };
77 
78     $.fn.scrollPagination.defaults = {
79         'contentPage': null,
80         'contentData':{},
81         'beforeLoad': null,
82         'afterLoad': null,
83         'scrollTarget': null,
84         'heightOffset':0,
85          // Add
86          'dataType': null,
87         'loader': function(data){}
88     };

89 })(jQuery);

 

3. Page

 1  <%@ page contentType= " text/html;charset=UTF-8 " language= " java "  %>
 2  <%@ taglib uri= " http://java.sun.com/jsp/jstl/core " prefix= " c "  %>
 3  < html >
 4  < head >
 5      < title >Jquery Scroll Pagination </ title >
 6      < script  type ="text/javascript"  src ="scripts/jquery.js" ></ script >
 7      < script  type ="text/javascript"  src ="scripts/scrollpagination.js" ></ script >
 8      < script  type ="text/javascript" >
 9         $( function () {
10             $('#content').scrollPagination({
11                 'contentPage':'pagination',
12                 'contentData':{},
13                 'scrollTarget':$(window),
14                 'heightOffset':10,
15                 'beforeLoad': function () {
16                     $('#loading').fadeIn();
17                 },
18                 'afterLoad': function (elementsLoaded) {
19                     $('#loading').fadeOut();
20                      var i = 0;
21                      if ($('#content').children().size() > 100) {
22                         $('#nomoreresults').fadeIn();
23                         $('#content').stopScrollPagination();
24                     }
25                 },
26                 'dataType':'json',
27                 'loader': function (data) {
28                     $.each(data.root, function(idx,item){
29                         $('#content').append("<li><p>" + item.content + "</p></li>");
30                     });
31                 }
32             });
33 
34         });
35      </ script >
36  </ head >
37  < body >
38  < div  id ="scrollpaginationdemo" >
39      < ul  id ="content" >
40          < c:forEach  var ="item"  items ="${content}" >
41              < li >
42                  < p >${item} </ p >
43              </ li >
44          </ c:forEach >
45      </ ul >
46      < div  class ="loading"  id ="loading" >Wait a moment... it's loading! </ div >
47      < div  class ="loading"  id ="nomoreresults" >Sorry, no more results for your pagination demo. </ div >
48  </ div >
49  </ body >

50 </html> 

 

参考: Demo

 

转载于:https://www.cnblogs.com/zhuyoufeng/archive/2012/04/04/2430967.html

 类似资料:

相关阅读

相关文章

相关问答