我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS3如何实现瀑布流布局与无限加载图片相册

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS3如何实现瀑布流布局与无限加载图片相册

这篇文章主要介绍了CSS3如何实现瀑布流布局与无限加载图片相册,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、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 class="lazy" data-src="img/1.jpg" />picture-1</p>
        <p class="item"><img class="lazy" data-src="img/2.jpg" />picture-2</p>
        <p class="item"><img class="lazy" data-src="img/3.jpg" />picture-3</p>
        <p class="item"><img class="lazy" data-src="img/4.jpg" />picture-4</p>
        <p class="item"><img class="lazy" data-src="img/5.jpg" />picture-5</p>
        <p class="item"><img class="lazy" data-src="img/6.jpg" />picture-6</p>
        <p class="item"><img class="lazy" data-src="img/7.jpg" />picture-7</p>
        <p class="item"><img class="lazy" data-src="img/8.jpg" />picture-8</p>
        <p class="item"><img class="lazy" data-src="img/9.jpg" />picture-9</p>
        <p class="item"><img class="lazy" data-src="img/10.jpg" />picture-10</p>
        <p class="item"><img class="lazy" data-src="img/11.jpg" />picture-11</p>
        <p class="item"><img class="lazy" data-src="img/12.jpg" />picture-12</p>
        <p class="item"><img class="lazy" data-src="img/13.jpg" />picture-13</p>
        <p class="item"><img class="lazy" data-src="img/14.jpg" />picture-14</p>
        <p class="item"><img class="lazy" data-src="img/15.jpg" />picture-15</p>
        <p class="item"><img class="lazy" data-src="img/16.jpg" />picture-16</p>
        <p class="item"><img class="lazy" data-src="img/17.jpg" />picture-17</p>
        <p class="item"><img class="lazy" data-src="img/18.jpg" />picture-18</p>
        <p class="item"><img class="lazy" data-src="img/19.jpg" />picture-19</p>
        <p class="item"><img class="lazy" data-src="img/20.jpg" />picture-20</p>
    </div>
    <a href="Handler1.ashx" id="next">下一页</a>
    <script class="lazy" data-src="js/jquery-3.1.1.js" type="text/javascript" charset="utf-8"></script>
    <!--插件的引用-->
    <script class="lazy" data-src="js/masonry.pkgd.min.js" type="text/javascript"></script>
    <script class="lazy" data-src="js/imagesloaded.pkgd.min.js" type="text/javascript" charset="utf-8"></script>
    <script class="lazy" data-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 class="lazy" data-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;
            }
        }
    }
}

感谢你能够认真阅读完这篇文章,希望小编分享的“CSS3如何实现瀑布流布局与无限加载图片相册”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS3如何实现瀑布流布局与无限加载图片相册

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用HTML和CSS实现瀑布流图片布局

如何使用HTML和CSS实现瀑布流图片布局瀑布流图片布局是一种常见的网页设计方式,它通过不规则的列布局将图片呈现在网页上,形成一种自然流动的视觉效果。在本文中,我们将介绍如何使用HTML和CSS实现瀑布流图片布局,并提供具体的代码示例。HT
2023-10-24

如何使用HTML和CSS实现瀑布流图片展示布局

瀑布流布局是一种常用于图片展示的布局方式,具有美观和灵活的特点。它能够根据图片的尺寸自动排列,使整个页面看起来更加有趣和吸引人。本文将介绍如何使用HTML和CSS来实现瀑布流图片展示布局,并提供具体的代码示例。第一步:创建HTML结构首先,
2023-10-21

编程热搜

目录