瀑布流

//1.随机生成LI的高度

//2.生成LI

//3.判断UL高度

//4.将LI插入到最低UL里面

var ul = document.getElementsByTagName('ul');

var li = document.getElementsByTagName('li');

// apply();

// var arr = [23,42,37,58]

// console.log(Math.min.apply(null,arr))

// console.log(document.documentElement.clientHeight);

addNode(30)

window.onscroll = function(){

var oLI = document.createElement('li');

var arrH =[],index = 0,iHeight = 0;

iHeight = scrollY() + clientY();

// console.log(scrollY())

for (var i = 0;i

arrH.push(ul[i].offsetHeight)

}

index = arrH.indexOf(Math.min.apply(null,arrH));

var iH = ul[index].offsetTop + ul[index].offsetHeight - 100;

if( iH <= iHeight){

addNode(30)

}

}

function addNode(num){

num = isNaN(num) ? 0 : num;

for (var i = 0;i

creatLi()

}

}

function creatLi(){

var arrH = [],index = 0;

var oLI = document.createElement('li');

oLI.innerHTML = li.length +1;

oLI.style.height = randH(100,300) +'px';

for (var i = 0;i

arrH.push(ul[i].offsetHeight)

}

index = arrH.indexOf(Math.min.apply(null,arrH));

ul[index].appendChild(oLI);

}

function randH(min,max){ //100 - 300

return parseInt(Math.random()*(max-min+1)+ min)

}

function scrollY(){

return document.body.scrollTop || document.documentElement.scrollTop;

}

function clientY(){

return document.documentElement.clientHeight || window.innerHeight

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所谓瀑布流,就是图片分几列有规律的排列,但是这里的排列是有要求的,普通的浮动布局会使图片与图片之间有很多的空隙,这...
    小飞侠zzr阅读 4,231评论 0 0
  • html结构 (Emmet) (div.box>div.pic>img[src="images/$.jpg"])*...
    LaBaby_阅读 3,860评论 0 0
  • 使用js来实现瀑布流效果 瀑布流的实现方法有很多种,我这次采用的是使用绝对定位的方法来实现。页面中包含一个容器ul...
    Bookish倩宝阅读 3,550评论 0 0
  • 初学者在某课堂学习ajax的过程中,有做一个瀑布流形式的小实例,为了加深理解知识点,因此把做实例的过程记录下来。 ...
    玄猫阅读 5,987评论 1 1
  • 这几张科技风的图片,运用光点、线条、高科技产品、模型、概念产品等元素,给人非常时尚的感觉。
    tire默阅读 994评论 0 0