Cette fois, je vous présente la Disposition du flux en cascade et l'effet de chargement illimité des albums photo Quelles sont les précautions pour mettre en œuvre l'effet de la disposition du flux en cascade et le chargement illimité des albums photo. albums photos. Voici la pratique réelle.
Table des matières
1. Le code de la page pic1.html est le suivant :
2. Le code de la classe d'entité Photoes.cs qui simule les données de la base de données est le suivant :
3. Le code du gestionnaire général Handler1.ashx permettant au serveur de renvoyer des données au client est le suivant :
4. Exemple de téléchargement :
5. En savoir plus sur Disposition du flux en cascade
Tout d'abord, laissez-moi vous montrer l'effet de la disposition du flux en cascade et le chargement illimité des albums photo :
1. Le code de la page pic1.html est le suivant :
<!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> <p 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> </p> <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>
2 Le code de la classe d'entité Photoes.cs pour simuler les données de la base de données est le suivant :
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; } } }
3. Le code du gestionnaire général Handler1.ashx pour que le serveur renvoie les données au client est le suivant :
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; } } } }
Résumé : J'ai appris la disposition des flux en cascade et le chargement des images il y a quelque temps, et j'ai fait un exemple simple, dans l'espoir de consolider les connaissances que j'ai acquises.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
CSS pour obtenir un effet de bouton 3D
Solution compatible IE pour le filtre de transparence d'opacité
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!