jQuery+ajax realizes scrolling to the bottom of the page and automatically loading the picture list effect of is similar to lazy loading of pictures


This article example describes the jQuery + ajax to achieve scrolling to the bottom of the page automatically loading graphic list effect. Share it for your reference, as follows:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title> Scroll to the top of the page to load
 </title>
  <script src="js/jquery-1.11.1.min.js" type="text/javascript"></script>
  <script src="js/endlesspage.js" type="text/javascript"></script>
   <style type="text/css">
      .mainDiv {
        width: 800px;
        border: solid 1px #f00;
        padding: 10px;
      }
      .item {
        width: 600px;
        height: 50px;
        border: solid 1px #00ff90;
        font-size: 12px;
        margin: 10px;
      }
      .title {
        font-size: 16px;
        line-height: 20px;
      }
      .content {
        line-height: 14px;
      }
      .alink
      {
        display:none;
      }
      .loaddiv
      {
        display:none;
      }
   </style>
</head>
<body>
  <h1> Rolling test
 </h1>
  <div class="mainDiv">
    <!--<div class="item">
      <div class="title">title</div>
      <div class="content">content content content content content content content</div>
    </div>
    -->
  </div>
  <div class="loaddiv">
    <img src="images/loading.gif" />
  </div>
  <div>
    <a href="javascript:void(0);" id="btn_Page" class="alink"> See more
 >>></a>
  </div>
</body>
</html>
/*endlesspage.js*/
var gPageSize = 10;
var i = 1; // Set the current number of pages, global variables

$(function () {
  // Read data according to the number of pages

  function getData(pagenumber) {
    i++; // The page number is automatically increased to ensure that it is new when the next call is made
 1 Page.

    $.get("/ajax/Handler.ashx", { pagesize: gPageSize, pagenumber: pagenumber }, function (data) {
      if (data.length > 0) {
        var jsonObj = JSON.parse(data);
        insertDiv(jsonObj);
      }
    });
    $.ajax({
      type: "post",
      url: "/ajax/Handler.ashx",
      data: { pagesize: gPageSize, pagenumber: pagenumber },
      dataType: "json",
      success: function (data) {
        $(".loaddiv").hide();
        if (data.length > 0) {
          var jsonObj = JSON.parse(data);
          insertDiv(jsonObj);
        }
      },
      beforeSend: function () {
        $(".loaddiv").show();
      },
      error: function () {
        $(".loaddiv").hide();
      }
    });
  }
  // Initializes loading the
 1 Page data

  getData(1);
  // Generate data
 html,append To
 div Medium

  function insertDiv(json) {
    var $mainDiv = $(".mainDiv");
    var html = '';
    for (var i = 0; i < json.length; i++) {
      html += '<div class="item">';
      html += ' <div class="title">' + json[i].rowId + '  ' + json[i].D_Name + '</div>';
      html += ' <div class="content">' + json[i].D_Name + '  ' + json[i].D_Password + '</div>';
      html += '</div>';
    }
    $mainDiv.append(html);
  }
  //============== Core code
 =============
  var winH = $(window).height(); // Height of visual area of page

  var scrollHandler = function () {
    var pageH = $(document.body).height();
    var scrollT = $(window).scrollTop(); // Scroll bar
 top
    var aa = (pageH - winH - scrollT) / winH;
    if (aa < 0.02) {//0.02 Is a parameter

      if (i % 10 === 0) {// Every
 10 Page making
 1 The second pause!

        getData(i);
        $(window).unbind('scroll');
        $("#btn_Page").show();
      } else {
        getData(i);
        $("#btn_Page").hide();
      }
    }
  }
  // Define mouse scrolling events

  $(window).scroll(scrollHandler);
  //============== Core code
 =============
  // Continue loading button event

  $("#btn_Page").click(function () {
    getData(i);
    $(window).scroll(scrollHandler);
  });
});
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Data;
using MSCL;
using Newtonsoft.Json;
public class Handler : IHttpHandler {
  public void ProcessRequest(HttpContext context)
  {
    // Core handler

    string pageSize = context.Request["pagesize"];
    string pageIndex = context.Request["pagenumber"];
    if (string.IsNullOrEmpty(pageSize) || string.IsNullOrEmpty(pageIndex))
    {
      context.Response.Write("");
    }
    else
    {
      // Please take paging data by yourself according to the actual situation, and call paging stored procedures

      MSCL.PageHelper p = new PageHelper();
      p.CurrentPageIndex = Convert.ToInt32(pageIndex);
      p.FieldsName = "*";
      p.KeyField = "d_id";
      p.SortName = "d_id asc";
      p.TableName = "testtable";
      p.EndCondition = "count(*)";
      p.PageSize = Convert.ToInt32(pageSize);
      DataTable dt = p.QueryPagination();
      string json = JsonConvert.SerializeObject(dt, Formatting.Indented);
      context.Response.Write(json);
    }
  }
  public bool IsReusable {
    get {
      return false;
    }
  }
}
[
 {
  "rowId": 1,
  "D_Id": 1,
  "D_Name": " Name
 1",
  "D_Password": " Password test
 1",
  "D_Else": " Others
 1"
 },
 {
  "rowId": 2,
  "D_Id": 2,
  "D_Name": " Name
 2",
  "D_Password": " Password test
 2",
  "D_Else": " Others
 2"
 },
 {
  "rowId": 3,
  "D_Id": 3,
  "D_Name": " Name
 3",
  "D_Password": " Password test
 3",
  "D_Else": " Others
 3"
 },
 {
  "rowId": 4,
  "D_Id": 4,
  "D_Name": " Name
 4",
  "D_Password": " Password test
 4",
  "D_Else": " Others
 4"
 },
 {
  "rowId": 5,
  "D_Id": 5,
  "D_Name": " Name
 5",
  "D_Password": " Password test
 5",
  "D_Else": " Others
 5"
 },
 {
  "rowId": 6,
  "D_Id": 6,
  "D_Name": " Name
 6",
  "D_Password": " Password test
 6",
  "D_Else": " Others
 6"
 },
 {
  "rowId": 7,
  "D_Id": 7,
  "D_Name": " Name
 7",
  "D_Password": " Password test
 7",
  "D_Else": " Others
 7"
 },
 {
  "rowId": 8,
  "D_Id": 8,
  "D_Name": " Name
 8",
  "D_Password": " Password test
 8",
  "D_Else": " Others
 8"
 },
 {
  "rowId": 9,
  "D_Id": 9,
  "D_Name": " Name
 9",
  "D_Password": " Password test
 9",
  "D_Else": " Others
 9"
 },
 {
  "rowId": 10,
  "D_Id": 10,
  "D_Name": " Name
 10",
  "D_Password": " Password test
 10",
  "D_Else": " Others
 10"
 }
]

PS: This also involves json format data interactive operation, on json data operation this site recommends several online tools for your reference, I believe in the future development can come in handy:

Online JSON code verification, verification, beautification and formatting tools: http://tools.ofstack.com/code/json

Online XML/JSON Interconversion Tools: http://tools.ofstack.com/code/xmljson

json code online formatting/beautification/compression/editing/conversion tool: http://tools.ofstack.com/code/jsoncodeformat

C Language Style/HTML/CSS/json Code Formatting and Beautification Tool: http://tools.ofstack.com/code/ccode\_html\_css\_json

For more readers interested in jQuery related content, please check the topics of this site: “Summary of Ajax Usage in jquery”, “Summary of jQuery Table (table) Operation Skills”, “Summary of jQuery Drag Effects and Skills”, “Summary of jQuery Extension Skills”, “Summary of jQuery Common Classic Effects”, “Summary of jQuery Animation and Special Effects Usage”, “Summary of jquery Selector Usage” and “Summary of jQuery Common Plugins and Usage”

I hope this article is helpful to everyone’s jQuery programming.