zoukankan      html  css  js  c++  java
  • js 之瀑布流

    页面:

    <div id="continars">
    </div>

    CSS:

    * {margin:0;padding:0;}
    .box {position:relative;float:left;}
    .content {padding:10px;border:1px solid #ccc;box-shadow:0 0 5px #ccc;border-radius:5px;}
    .content img {190px;height:auto;}

    JS代码:

     1 var ImageDat = { "data": [{ "src": "1.jpg" }, { "src": "2.jpg" }, { "src": "3.jpg" }, { "src": "4.jpg" }, { "src": "5.jpg" }, { "src": "6.jpg" }, { "src": "7.jpg" }, { "src": "8.jpg" }, { "src": "9.jpg" }, { "src": "10.jpg" } ] };
     2 $(document).ready(function () {
     3 $(window).on("load", function () {
     4 imaglocation();
     5 window.onscroll = function () {
     6 if (scrollside()){
     7 $.each(ImageDat.data, function (index, value) {
     8 var box = $("<div>").addClass("box").appendTo("#continars");
     9 var content = $("<div>").addClass("content").appendTo(box);
    10 $("<img>").attr("src", "./image/" + $(value).attr("src")).appendTo(content);
    11 });
    12 imaglocation();
    13 }
    14 };
    15 });
    16 });
    17 function scrollside() {
    18 var box = $(".box");
    19 var lastboxheight = box.last().get(0).offsetTop + Math.floor(box.last().height() / 2);//当滚动条滚动到最下面张图片的一般位置的时候
    20 var documentheight = window.screen.availHeight;//当前浏览器可见页面高度
    21 var scrollTop = $(window).scrollTop();//可见页面顶部到页面顶部的距离
    22 return (lastboxheight < (documentheight + scrollTop)) ? true : false;
    23 }
    24 function imaglocation() {
    25 var box = $(".box");
    26 var boxwidth = box.eq(0).width();//第一张图片的宽度
    27 var num = Math.floor($(window).width() / boxwidth);
    28 var boxArr = [];
    29 box.each(function (index, value) {
    30 var boxheight = box.eq(index).height();
    31 if (index < num) {
    32 boxArr[index] = boxheight;
    33 }
    34 else {
    35 var minboxheight = Math.min.apply(null, boxArr);
    36 var minboxindex = $.inArray(minboxheight, boxArr);//判断高度最低的图的位置
    37 $(value).css({
    38 "position": "absolute",
    39 "top": minboxheight,
    40 "left": box.eq(minboxindex).position().left
    41 });
    42 boxArr[minboxindex] += box.eq(index).height();//将最新加入图片高度加到列高度计算中
    43 }
    44 });
    45 }
    46 
    47  

    其中:1-10的图片可以随机选择放入

  • 相关阅读:
    HttpListener Start 拒绝访问
    ef 操作 mysql 中文乱码问题
    EnableMigrations 迁移错误,提示找不到连接字符串
    windows live writer 安装失败 0x80190194 解决方法
    清北学堂模拟赛2 T2 ball
    清北学堂例题 LUOGU2523【HAOI2011】problem c
    清北学堂例题 LUOGU2519 【HAOI2011】PROBLEM A
    2019暑期清北学堂爆零被锤记
    牛客周赛11TG B弹钢琴
    Flex3——log日志文件 关于mm.cfg日志配置文件的设置
  • 原文地址:https://www.cnblogs.com/XiangszRN/p/4786751.html
Copyright © 2011-2022 走看看