CSS3实现瀑布流布局与无限加载图片相册的实例代码
程序员文章站
2023-10-22 08:51:26
本篇文章主要介绍了CSS3实现瀑布流布局与无限加载图片相册的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
... 16-12-22...
目录
一、pic1.html页面代码如下:
二、模拟数据库数据的实体类photoes.cs代码如下:
三、服务器返回数据给客户端的一般处理程序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> //此方法用来初始化图片(图片全部加载完成时调用) var init = function () { imagesloaded(document.queryselector('#items'), function (instance) { //此方法用来设置瀑布流布局 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>
二、模拟数据库数据的实体类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; } //模拟数据库有两百条数据 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; } } }
三、服务器返回数据给客户端的一般处理程序handler1.ashx代码如下:
using system; using system.collections.generic; using system.linq; using system.web; using system.web.script.serialization; namespace 瀑布流布局与无限加载图片相册 { /// <summary> /// 服务器返回数据给客户端的一般处理程序 /// </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; } } } }
总结:前段时间学习了瀑布流布局与图片加载等知识,做了一个简单的示例,希望能巩固一下自己所学的知识。
代码实例:demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。