国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

ASP.NET仿新浪微博下拉加載更多數(shù)據(jù)瀑布流效果

2019-11-17 01:57:58
字體:
來源:轉載
供稿:網(wǎng)友

asp.net仿新浪微博下拉加載更多數(shù)據(jù)瀑布流效果

  閑來無事,琢磨著寫點東西。貌似頁面下拉加載數(shù)據(jù),瀑布流的效果很火,各個網(wǎng)站都能見到各式各樣的展示效果,原理大同小異。于是乎,決定自己寫一寫這個效果,希望能給比我還菜的菜鳥們一點參考價值。

  在開始之前,先把實現(xiàn)的基本原理說一下。當夜幕下拉到底部的時候,js可以判斷滾動條的位置,到達底部觸發(fā)js方法,執(zhí)行jquery的Ajax方法,向后臺一般處理程序夜幕ashx文件請求數(shù)據(jù)源,得到json格式的數(shù)據(jù)源。然后,遍歷json數(shù)據(jù)源,拼接一個li標簽,再填充到頁面上去。

  首先,我們來做個簡單的html頁面。頁面里需要引入jquery庫,然后用jquery的ajax方法去請求后臺程序,也就是一般處理程序頁面。待會,我會在一般處理程序頁面ashx文件里面寫方法,返回前端頁面所需要的新聞列表數(shù)據(jù)源。數(shù)據(jù)源的格式,我用的json格式。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>仿新浪微博下拉頁面底部加載更多</title>    <style type="text/CSS">        #main {            margin: 10px auto;            width: 990px;        }        #ListContent {            color: white;            position: relative;        }        #Listinfo {            width: 850px;            float: left;            background-color: #071A37;            position: relative;            padding-bottom: 50px;        }            #Listinfo li {                list-style: none;                width: 800px;                height: 40px;                line-height: 40px;                text-align: center;                float: left;            }        #LoadingMsg {            display: none;            margin: 0 0;            padding: 0 0;            height: 25px;            line-height: 25px;            width: 800px;            position: absolute;            left: 48px;            text-align: center;            vertical-align: middle;            bottom: 20px;        }            #LoadingMsg span {                margin: 0 0;                padding: 0 0;                background: url(loading.gif) left center no-repeat;                padding-left: 30px;                height: 25px;                line-height: 25px;            }    </style>    <script type="text/javascript" src="jquery-1.8.2.js"></script>    <script type="text/Javascript">        $(function () {            var PageNum = 0;            $(window).scroll(function () {                //console.log("滾動條到頂部的垂直高度: " + $(document).scrollTop());                //console.log("頁面的文檔高度 :" + $(document).height());                //console.log('瀏覽器的高度:' + $(window).height());                //console.log('瀏覽器的高度加上滾動條的高度:' + parseFloat($(window).height()) + parseFloat($(window).scrollTop()));                var totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop());//瀏覽器的高度加上滾動條的高度                if ($(document).height() <= totalheight)//當文檔的高度小于或者等于總的高度的時候,開始動態(tài)加載數(shù)據(jù)                {                    $('#LoadingMsg').css('display', 'block');                    ///ajax存在緩存問題,所以這里加個隨機數(shù),讓每次請求的參數(shù)變化,消除數(shù)據(jù)緩存的問題。                    var randcode = 1 + Math.round(Math.random() * 9999);                    $.ajax({                        type: "Get",                        url: "Handler.ashx",                        dataType: "json",                        data: "PageNum=" + PageNum + "&randcode" + randcode,                        success: function (data) {                            $.each(data, function (i, item) {                                if (item.Num == '-1') {                                    $('#LoadingMsg').html('沒有更多數(shù)據(jù)了');                                    $('#LoadingMsg').css('display', 'block');                                }                                else {                                    $("#Listinfo").append("<li>" + item.Num + ".<font color='red'>" + item.Ntitle + "</font></li>");//加載數(shù)據(jù)                                }                            })                            if (data.length > 0) {                                PageNum++;                            }                            //$('#LoadingMsg').css('display', 'none');                        },                        error: function (xmlhttpRequest, textStatus, errorThrown) {                            alert("程序錯誤,錯誤信息:" + errorThrown);                        }                    });                }            });        })    </script></head><body>    <div id="main">        <div id="ListContent">            <ul id="Listinfo">                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>                <li>這里是很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的新聞標題</li>            </ul>            <div style="clear: both"></div>            <div id="LoadingMsg">                <span>正在加載,請稍后...</span>            </div>        </div>    </div></body></html>
  然后,來看一下代碼的頁面效果。  接下來,我們要創(chuàng)建數(shù)據(jù)庫,連接數(shù)據(jù)庫,讀取數(shù)據(jù)。這樣做太麻煩了,我直接用自定義的List數(shù)據(jù)來做演示了。我平時習慣為數(shù)據(jù)庫每張表都創(chuàng)建一個實體類,以此隱射數(shù)據(jù)庫的表,字段。這里我們創(chuàng)建一個NewsInfo的實體類,也就是通常的三層架構程序里面的Model里面的類。同時,我們自定義一些數(shù)據(jù)給他,這個作為我們的數(shù)據(jù)源。真實開發(fā)環(huán)境下面,這個都是在DAL里面去連接數(shù)據(jù)庫,讀取數(shù)據(jù)的。我這里只是用作演示,希望你們懂的。我在實體類中定義了一個帶參數(shù)的名為GetListByPn的方法。這個參數(shù)int類型的pn參數(shù),你可以理解為你下拉頁面的次數(shù)。比如當你第一次拉到頁面底部的時候,這個參數(shù)為1,那我們就讀取前N條數(shù)據(jù),當你第二次下拉到頁面底部的時候,這個參數(shù)為2,那我們就讀取第N到2N條之間的N條數(shù)據(jù),這個就是存儲過程分頁的原理。這個方法,我返回了一個類型是NewsInfo的List集合,這就是我們傳遞給前端頁面的數(shù)據(jù)源。

  

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌珠穆沁旗| 西宁市| 平陆县| 景东| 江门市| 西安市| 屯昌县| 阳新县| 渭南市| 青田县| 曲靖市| 桦甸市| 广河县| 静海县| 略阳县| 工布江达县| 枣阳市| 盐源县| 高唐县| 平顺县| 华蓥市| 策勒县| 临沂市| 四子王旗| 托克托县| 塘沽区| 谷城县| 金堂县| 高尔夫| 呼玛县| 儋州市| 衡山县| 酒泉市| 沧源| 习水县| 新田县| 盖州市| 都匀市| 阜康市| 安图县| 乌恰县|