Jquery滚动到页面底部自动Ajax加载图文列表,类似图片懒加载效果,带加载效果

<!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>滚动到页面顶部加载</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>滚动测试</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">查看更多>>></a>
    </div>
</body>
</html>
/*endlesspage.js*/
var gPageSize = 10;
var i = 1; //设置当前页数,全局变量
$(function () {
    //根据页数读取数据
    function getData(pagenumber) {
        i++; //页码自动增加,保证下次调用时为新的一页。
        $.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();
            }
        });
    }
    //初始化加载第一页数据
    getData(1);

    //生成数据html,append到div中
    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);
    }

    //==============核心代码=============
    var winH = $(window).height(); //页面可视区域高度 

    var scrollHandler = function () {
        var pageH = $(document.body).height();
        var scrollT = $(window).scrollTop(); //滚动条top
        var aa = (pageH - winH - scrollT) / winH;
        if (aa < 0.02) {//0.02是个参数
            if (i % 10 === 0) {//每10页做一次停顿!
                getData(i);
                $(window).unbind('scroll');
                $("#btn_Page").show();
            } else {
                getData(i);
                $("#btn_Page").hide();
            }
        }
    }
    //定义鼠标滚动事件
    $(window).scroll(scrollHandler);
    //==============核心代码=============

    //继续加载按钮事件
    $("#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)
    {
        //核心处理程序
        string pageSize = context.Request["pagesize"];
        string pageIndex = context.Request["pagenumber"];
        if (string.IsNullOrEmpty(pageSize) || string.IsNullOrEmpty(pageIndex))
        {
            context.Response.Write("");
        }
        else
        {
            //请结合实际自行取分页数据,可调用分页存储过程
            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": "名称1",
    "D_Password": "密码测试1",
    "D_Else": "其他1"
  },
  {
    "rowId": 2,
    "D_Id": 2,
    "D_Name": "名称2",
    "D_Password": "密码测试2",
    "D_Else": "其他2"
  },
  {
    "rowId": 3,
    "D_Id": 3,
    "D_Name": "名称3",
    "D_Password": "密码测试3",
    "D_Else": "其他3"
  },
  {
    "rowId": 4,
    "D_Id": 4,
    "D_Name": "名称4",
    "D_Password": "密码测试4",
    "D_Else": "其他4"
  },
  {
    "rowId": 5,
    "D_Id": 5,
    "D_Name": "名称5",
    "D_Password": "密码测试5",
    "D_Else": "其他5"
  },
  {
    "rowId": 6,
    "D_Id": 6,
    "D_Name": "名称6",
    "D_Password": "密码测试6",
    "D_Else": "其他6"
  },
  {
    "rowId": 7,
    "D_Id": 7,
    "D_Name": "名称7",
    "D_Password": "密码测试7",
    "D_Else": "其他7"
  },
  {
    "rowId": 8,
    "D_Id": 8,
    "D_Name": "名称8",
    "D_Password": "密码测试8",
    "D_Else": "其他8"
  },
  {
    "rowId": 9,
    "D_Id": 9,
    "D_Name": "名称9",
    "D_Password": "密码测试9",
    "D_Else": "其他9"
  },
  {
    "rowId": 10,
    "D_Id": 10,
    "D_Name": "名称10",
    "D_Password": "密码测试10",
    "D_Else": "其他10"
  }
]            

时间: 2024-07-31 08:45:56

Jquery滚动到页面底部自动Ajax加载图文列表,类似图片懒加载效果,带加载效果的相关文章

当滚动条滚动到页面底部自动加载增加内容的js代码

这篇文章主要介绍了如何使用javscript实现滚动条滚动到页面底部自动加载增加页面内容,需要的朋友可以参考下..1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度.滚动条位置.文档高度的函数: 复制代码 代码如下://获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.documentElement && document.documentEle

Jquery鼠标滚动到页面底部自动加载更多内容,使用分页

https://www.cnblogs.com/qhorse/p/4717726.html index.php代码 [html] view plaincopy<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://

滑轮滚动到页面底部ajax加载数据

滚动下拉到页面底部加载数据是很多瀑布流网站的做法,那来看看配合jsonp是如何实现的吧 当然本例子采用的是jquery库,后期会做成原生js.本例的数据调用的是锋利的jquery一书提供的一段json. 首先要先判断页面怎么样才是滚动到底部,也就是scrollTop+window的height是否大于document的height,jquery如下代码: $(window).scrollTop()+$(window).height()>=$(document).height(): 再给windo

vue 实现滚动到页面底部开始加载更多

直接上代码: <template> <div class="newsList"> <div v-for="(items, index) in newsList"> <div class="date">{{showDay(index)}}</div> <div class="list" > <ul> <li class="list

selenium,Python3滚动到页面底部的几种解决方案

目录 location_once_scrolled_into_view ActionChains js方法scrollIntoView js方法scrollBy send_keys(Keys.END)模拟向页面发送空格键 页面为ajax动态加载 在用selenium获取页面时,很多时候需要将滚动条拖到页面底部,下面总结了几种方法. location_once_scrolled_into_view #coding=utf-8 from selenium import webdriver from

滚动到页面底部触发分页事件

最近写页面写不少东西,,好久没这么频繁写js了.废话不说了... 用户滑动页面,捕捉用户翻到页面底部时,触发事件. $(window).scroll(function () { var scrollTop = $(this).scrollTop(); // 页面卷上去的高度 var windowHeight = document.body.clientHeight; // 当前屏幕上页面的高度 var docHeight = $(document).height(); // 文档的高度 // 表

jquery实现滚动到页面底部时无限加载内容的代码

由于时间关系没有整理封装,有空的时候再把他做成一个插件.但复制下来修改一下是可以用的.以下为实例: var p="{$other.p}"; if(p=="") p=1; var stop=true;//触发开关,防止多次调用事件 $(window).scroll(function() { //当内容滚动到底部时加载新的内容 100当距离最底部100个像素时开始加载. if ($(this).scrollTop() + $(window).height() + 100

页面滚动到底部自动 Ajax 获取文章

 代码如下 复制代码 var _timer = {};function delay_till_last(id, fn, wait) {    if (_timer[id]) {        window.clearTimeout(_timer[id]);        delete _timer[id];    }     return _timer[id] = window.setTimeout(function() {        fn();        delete _timer[i

页面滚动到底部自动加载下一页功能的实现

页面滚动到底部自动加载下一页功能的实现,效果见本博首页 1.endlesspage.js文件内容 var gPageSize = 10; var i = 1; //设置当前页数,全局变量 var finished = false; var dataUrl = ''; $(function () { //根据页数读取数据 function getData(pagenumber) { //console.log(i); $.get(dataUrl, { pagesize: gPageSize, p: