CSS3轻松实现瀑布流布局与无限加载图片相册的教程

 更新时间:2017年1月22日 11:03  点击:1951
这篇文章详细介绍了CSS3实现瀑布流布局与无限加载图片相册的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

目录

一、pic1.html页面代码如下:

二、模拟数据库数据的实体类Photoes.cs代码如下:

三、服务器返回数据给客户端的一般处理程序Handler1.ashx代码如下:

四、示例下载:

五、了解更多瀑布流布局的的知识

首先给大家看一下瀑布流布局与无限加载图片相册效果图:

一、pic1.html页面代码如下:

<!DOCTYPE html>
<html>
<head>
    <metacharset="UTF-8">
    <title>瀑布流布局与无限加载图片相册</title>
    <styletype="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>
    <divid="items">
        <pclass="item"><imgsrc="img/1.jpg"/>picture-1</p>
        <pclass="item"><imgsrc="img/2.jpg"/>picture-2</p>
        <pclass="item"><imgsrc="img/3.jpg"/>picture-3</p>
        <pclass="item"><imgsrc="img/4.jpg"/>picture-4</p>
        <pclass="item"><imgsrc="img/5.jpg"/>picture-5</p>
        <pclass="item"><imgsrc="img/6.jpg"/>picture-6</p>
        <pclass="item"><imgsrc="img/7.jpg"/>picture-7</p>
        <pclass="item"><imgsrc="img/8.jpg"/>picture-8</p>
        <pclass="item"><imgsrc="img/9.jpg"/>picture-9</p>
        <pclass="item"><imgsrc="img/10.jpg"/>picture-10</p>
        <pclass="item"><imgsrc="img/11.jpg"/>picture-11</p>
        <pclass="item"><imgsrc="img/12.jpg"/>picture-12</p>
        <pclass="item"><imgsrc="img/13.jpg"/>picture-13</p>
        <pclass="item"><imgsrc="img/14.jpg"/>picture-14</p>
        <pclass="item"><imgsrc="img/15.jpg"/>picture-15</p>
        <pclass="item"><imgsrc="img/16.jpg"/>picture-16</p>
        <pclass="item"><imgsrc="img/17.jpg"/>picture-17</p>
        <pclass="item"><imgsrc="img/18.jpg"/>picture-18</p>
        <pclass="item"><imgsrc="img/19.jpg"/>picture-19</p>
        <pclass="item"><imgsrc="img/20.jpg"/>picture-20</p>
    </div>
    <ahref="Handler1.ashx"id="next">下一页</a>
    <scriptsrc="js/jquery-3.1.1.js"type="text/javascript"charset="utf-8"></script>
    <!--插件的引用-->
    <scriptsrc="js/masonry.pkgd.min.js"type="text/javascript"></script>
    <scriptsrc="js/imagesloaded.pkgd.min.js"type="text/javascript"charset="utf-8"></script>
    <scriptsrc="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++) {
                $("<pclass='item'><imgsrc='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代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
 
namespace瀑布流布局与无限加载图片相册
{
    publicclassPhotoes
    {
        publicintimgUrl {get;set; }
        publicstringName {get;set; }
        //模拟数据库有两百条数据
        publicstaticList<Photoes> GetData()
        {
            List<Photoes> list =newList<Photoes>();
            Photoes pic =null;
            for(inti= 21; i <=200; i++)
            {
                pic =newPhotoes();
                pic.imgUrl = i;
                pic.Name ="Picture-"+ i;
                list.Add(pic);
            }
            returnlist;
        }
    }
}

三、服务器返回数据给客户端的一般处理程序Handler1.ashx代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Script.Serialization;
 
namespace瀑布流布局与无限加载图片相册
{
    /// <summary>
    /// 服务器返回数据给客户端的一般处理程序
    /// </summary>
    publicclassHandler1 : IHttpHandler
    {
        publicvoidProcessRequest(HttpContext context)
        {
            context.Response.ContentType ="text/plain";
            List<Photoes> result = Photoes.GetData();
            intpageIndex = Convert.ToInt32(context.Request["page"]);
            var filtered = result.Where(p => p.imgUrl >= pageIndex * 20 - 19 && p.imgUrl <= pageIndex * 20).ToList();
            JavaScriptSerializer ser =newJavaScriptSerializer();
            stringjsonData = ser.Serialize(filtered);
            context.Response.Write(jsonData);
        }
 
        publicboolIsReusable
        {
            get
            {
                returnfalse;
            }
        }
    }
}

总结:前段时间学习了瀑布流布局与图片加载等知识,做了一个简单的示例,希望能巩固一下自己所学的知识。

[!--infotagslink--]

相关文章

  • jQuery实现瀑布流布局详解(PC和移动端)

    瀑布流布局已成为当今非常普遍的图片展示方式,无论是PC还是手机等移动设备上。这种布局图片的样式大概分为三种:等高等宽、等宽不等高、等高不等宽,接下来我们就最为普遍的等宽不等高形式来作为示例。我们用百度图片作为...2015-10-30
  • 原生js页面滚动延迟加载图片

    这篇文章主要介绍了原生js页面滚动延迟加载图片的相关资料,现在瀑布流效果大行其道,各种网站都有应用,尤其是专业的图片类型的网站,感兴趣的朋友可以参考下...2015-12-21
  • 基于JavaScript实现瀑布流效果(循环渐近)

    本文给大家介绍基于javascript实现循环渐近瀑布流效果,代码简单易懂,非常具有参考价值,需要的朋友参考下吧...2016-01-29
  • jQuery实现瀑布流布局详解(PC和移动端)

    瀑布流布局已成为当今非常普遍的图片展示方式,无论是PC还是手机等移动设备上。这种布局图片的样式大概分为三种:等高等宽、等宽不等高、等高不等宽,接下来我们就最为普遍的等宽不等高形式来作为示例。我们用百度图片作为...2015-10-30
  • Android ViewPager加载图片效果

    android项目中经常需要用到ViewPager加载图片,那么如何解决呢?本文介绍了Android ViewPager加载图片效果的教程,有需要的同学请参见下文。 目前项目中需要用到ViewPa...2017-01-22
  • JavaScript瀑布流布局实现代码

    这篇文章主要为大家详细介绍了JavaScript瀑布流布局的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-09
  • Vue实现无限加载瀑布流

    这篇文章主要为大家详细介绍了Vue实现无限加载瀑布流,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-11-04
  • js实现瀑布流布局(无限加载)

    这篇文章主要为大家详细介绍了js实现瀑布流布局,无限加载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-14
  • 基于JavaScript实现瀑布流布局

    这篇文章主要介绍了原生JavaScript实现瀑布流布局的相关资料,实现鼠标下拉图片自动加载效果,和百度图片效果类似,需要的朋友可以参考下...2016-01-14
  • javascript实现仿百度图片的瀑布流加载效果

    这是一款仿照百度图片的瀑布流效果,可以无限加载,兼容各大主流浏览器,这里分享给大家,希望小伙伴们能够喜欢...2016-04-22
  • jQuery滚动加载图片实现原理

    这篇文章主要介绍了jQuery滚动加载图片实现原理,通过四个方面来说明懒加载技术的原理,感兴趣的小伙伴们可以参考一下...2015-12-16
  • Android使用ViewPager加载图片和轮播视频

    本文介绍了Android使用ViewPager加载图片和轮播视频,非常实用,有兴趣的同学快来看看吧 作为Android基础组件之一,大家对viewpager已经很熟悉了,网上也有很多使用viewp...2017-07-06
  • 利用JS实现简单的瀑布流加载图片效果

    今天学习了一个瀑布流加载效果,很多网站都有瀑布流效果,下面通过本文给大家分享利用JS实现简单的瀑布流加载图片效果,需要的朋友参考下吧...2017-04-27
  • javascript瀑布流式图片懒加载实例解析与优化

    这篇文章主要针对javascript瀑布流式图片懒加载实例进行解析与优化,感兴趣的小伙伴们可以参考一下...2016-02-26
  • 如何用JS实现网页瀑布流布局

    这篇文章主要介绍了如何用JS实现网页瀑布流布局,帮助大家更好的利用JavaScript制作网页,感兴趣的朋友可以了解下...2021-04-24
  • jQuery oLoader实现的加载图片和页面效果

    oLoader使用方法不管是oLoader还是oPageLoader都是基于jQuery,所以调用前请先加载jquery库,作者已经将两个插件集成到一起:jquery.oLoader.min.js,已经打包好请戳源码下载。 调用jQuery oLoader非常简单,一句话如下:复制代...2015-03-15
  • picturebox加载图片的三种方法与网站验证码的抓取

    这篇文章主要介绍了picturebox加载图片的三种方法与网站验证码的抓取,需要的朋友可以参考下...2020-06-25
  • PHP结合Jquery和ajax实现瀑布流特效

    php+ajax+jquery实现无限瀑布流布局 宽度是一定的高度不定的瀑布流布局 也可以说是无缝拼图 当浏览器滚动到底部时候自动加载图片,非常的实用,需要的小伙伴可以参考下。...2016-01-09
  • 基于jquery实现瀑布流布局

    这篇文章主要介绍了基于jquery实现瀑布流布局的相关资料,需要的朋友可以参考下...2015-12-29
  • CSS3轻松实现瀑布流布局与无限加载图片相册的教程

    这篇文章详细介绍了CSS3实现瀑布流布局与无限加载图片相册的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 目录 一、pic1.html页面代码如下: 二、...2017-01-22