瀑布流

瀑布流

Title
  • </ul>
    <script>
        var ul,img;
        var position=3;//引用路径从三开始的
        var heightList=[];
        //图片的宽度为5张
        const NUM=5;
        init();
        function init() {
            ul=document.querySelector("ul")
            //创建for循环的
            for (var i = 0; i < NUM; i++) {
                //建立li元素
                var li = document.createElement("li");
                //li向左浮动
                li.style.float = "left";
                //每张照片的宽度等于页面的宽减去num*18(18因为给他添加了每张照片向左,乘以18在一行排列)
                li.style.width = (document.documentElement.clientWidth - 18 * NUM) / NUM + "px";
                li.style.marginLeft = "10px";
                li.style.border = "1px solid #000000";
                heightList.push(0);
                ul.appendChild(li);
    
        }
            img=new Image();
            img.addEventListener("load",loadHandler);
            img.src="img/"+position+"-.jpg";    //每张图片的位置
    
            document.addEventListener("scroll",scrollHandler); //添加滚轮时间的侦听
        }
    
        function loadHandler(e) {
    

// 将加载进来的图片复制一个新的
var imgs=this.cloneNode(false);
// 获取当前数组中所有最小的那个元素所在的下标
var index=getMinHeightIndex();
// 在ul中找到子项li是上面下标对象li,并且添加图片
ul.children[index].appendChild(imgs);
// 设置这个图片的宽度,是图片的父级(li)的宽度
imgs.style.width=imgs.parentElement.offsetWidth+“px”;
// 把这个li现在的高度设置给数组中对应的那个数
heightList[index]=imgs.parentElement.offsetHeight;

        position++;
        if(position>79){
            position=3;
      //      return;
        }
        //生成的平数
        if((document.documentElement.scrollHeight-document.documentElement.scrollTop)/document.documentElement.clientHeight>4){
            return;
        }
        this.src="img/"+position+"-.jpg";
    }

    function scrollHandler(e) {
        if((document.documentElement.scrollHeight-document.documentElement.scrollTop)/document.documentElement.clientHeight<2){
            position++;
            if(position>79){
                 position=3;
         //       return;
            }
            img.src="img/"+position+"-.jpg";
        }
    }

    function getMinHeightIndex() {
        var min=Math.min.apply(null,heightList);
        return heightList.indexOf(min);
    }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值