CSS3实现瀑布流布局与无限加载图片相册的实例代码
前端  /  管理员 发布于 7年前   147
目录
一、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='https:/css/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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号