CSS3實(shí)現(xiàn)瀑布流布局與無限加載圖片相冊的實(shí)例代碼

目錄
一、pic1.html頁面代碼如下:
二、模擬數(shù)據(jù)庫數(shù)據(jù)的實(shí)體類Photoes.cs代碼如下:
三、服務(wù)器返回?cái)?shù)據(jù)給客戶端的一般處理程序Handler1.ashx代碼如下:
四、示例下載:
五、了解更多瀑布流布局的的知識
首先給大家看一下瀑布流布局與無限加載圖片相冊效果圖:
一、pic1.html頁面代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>瀑布流布局與無限加載圖片相冊</title> <style type="text/css"> * { margin: 0; padding: 0; } body { background: url(../img/bg5.jpg); } #items { width: 1060px; margin: 0 auto; border: 1px solid lightpink; } .item { border: 1px solid lightpink; width: 200px; color: purple; font-size: 30px; font-weight: bolder; margin: 5px; text-align: center; opacity: 0.8; } img { width: 200px; } </style> </head> <body> <div id="items"> <p class="item"><img src="img/1.jpg" />picture-1</p> <p class="item"><img src="img/2.jpg" />picture-2</p> <p class="item"><img src="img/3.jpg" />picture-3</p> <p class="item"><img src="img/4.jpg" />picture-4</p> <p class="item"><img src="img/5.jpg" />picture-5</p> <p class="item"><img src="img/6.jpg" />picture-6</p> <p class="item"><img src="img/7.jpg" />picture-7</p> <p class="item"><img src="img/8.jpg" />picture-8</p> <p class="item"><img src="img/9.jpg" />picture-9</p> <p class="item"><img src="img/10.jpg" />picture-10</p> <p class="item"><img src="img/11.jpg" />picture-11</p> <p class="item"><img src="img/12.jpg" />picture-12</p> <p class="item"><img src="img/13.jpg" />picture-13</p> <p class="item"><img src="img/14.jpg" />picture-14</p> <p class="item"><img src="img/15.jpg" />picture-15</p> <p class="item"><img src="img/16.jpg" />picture-16</p> <p class="item"><img src="img/17.jpg" />picture-17</p> <p class="item"><img src="img/18.jpg" />picture-18</p> <p class="item"><img src="img/19.jpg" />picture-19</p> <p class="item"><img src="img/20.jpg" />picture-20</p> </div> <a href="Handler1.ashx" id="next">下一頁</a> <script src="js/jquery-3.1.1.js" type="text/javascript" charset="utf-8"></script> <!--插件的引用--> <script src="js/masonry.pkgd.min.js" type="text/javascript"></script> <script src="js/imagesloaded.pkgd.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/jquery.infinitescroll.min.js"></script> <script> //此方法用來初始化圖片(圖片全部加載完成時(shí)調(diào)用) var init = function () { imagesLoaded(document.querySelector('#items'), function (instance) { //此方法用來設(shè)置瀑布流布局 var msnry = new Masonry("#items", { itemSelector: ".item", columnWidth: 0 //列與列之間的寬度 }); //alert('所有的圖片都加載完成了'); }); } init(); var num = 0; //此方法是無限加載的方法 $("#items").infinitescroll({ navSelector: "#next", nextSelector: "a#next", itemSelector: ".item", debug: true, dataType: "json", maxPage: 10, appendCallback: false, path: function (index) { console.log(index); return "Handler1.ashx?page=" + index; } }, function (data) { num -= 20; for (var i = 0; i < data.length; i++) { $("<p class='item'><img src='img/" + (data[i].imgUrl + num) + ".jpg' />" + data[i].Name + "</p>").appendTo("#items") console.log(data[i].imgUrl + "--" + data[i].Name); } init(); }); </script> </body> </html>
二、模擬數(shù)據(jù)庫數(shù)據(jù)的實(shí)體類Photoes.cs代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace 瀑布流布局與無限加載圖片相冊 { public class Photoes { public int imgUrl { get; set; } public string Name { get; set; } //模擬數(shù)據(jù)庫有兩百條數(shù)據(jù) public static List<Photoes> GetData() { List<Photoes> list = new List<Photoes>(); Photoes pic = null; for (int i= 21; i <=200; i++) { pic = new Photoes(); pic.imgUrl = i; pic.Name = "Picture-" + i; list.Add(pic); } return list; } } }
三、服務(wù)器返回?cái)?shù)據(jù)給客戶端的一般處理程序Handler1.ashx代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Script.Serialization; namespace 瀑布流布局與無限加載圖片相冊 { /// <summary> /// 服務(wù)器返回?cái)?shù)據(jù)給客戶端的一般處理程序 /// </summary> public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; List<Photoes> result = Photoes.GetData(); int pageIndex = Convert.ToInt32(context.Request["page"]); var filtered = result.Where(p => p.imgUrl >= pageIndex * 20 - 19 && p.imgUrl <= pageIndex * 20).ToList(); JavaScriptSerializer ser = new JavaScriptSerializer(); string jsonData = ser.Serialize(filtered); context.Response.Write(jsonData); } public bool IsReusable { get { return false; } } } }
總結(jié):前段時(shí)間學(xué)習(xí)了瀑布流布局與圖片加載等知識,做了一個(gè)簡單的示例,希望能鞏固一下自己所學(xué)的知識。
代碼實(shí)例:demo
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了3種方式實(shí)現(xiàn)瀑布流布局小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)2019-09-05
詳解純css實(shí)現(xiàn)瀑布流(multi-column多列及flex布局)
這篇文章主要介紹了詳解純css實(shí)現(xiàn)瀑布流(multi-column多列及flex布局)的相關(guān)資料,用multi-column多列布局及flex布局實(shí)現(xiàn)瀑布流,感興趣的小伙伴們可以參考一下2018-09-04css3 column實(shí)現(xiàn)卡片瀑布流布局的示例代碼
這篇文章主要介紹了css3 column實(shí)現(xiàn)卡片瀑布流布局的示例代碼的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-22- 這篇文章主要介紹了用CSS3實(shí)現(xiàn)瀑布流布局的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-10
瀑布流布局的兩種實(shí)現(xiàn)方式:傳統(tǒng)多列浮動(dòng)和絕對定位布局
瀑布流布局想必大家對它并不陌生吧,在一些網(wǎng)站上都會(huì)有這種效果的出現(xiàn),下面為大家介紹下使用兩種方式實(shí)現(xiàn)傳統(tǒng)多列浮動(dòng)和絕對定位布局,具體的實(shí)現(xiàn)代碼如下,感興趣的朋友2013-08-26waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn)
這篇文章主要介紹了waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起2021-01-19