下面这段代码在浏览器上运行正确,但在慕课网上运行有bug,大牛请指点!!!
如果有相同高度的图片怎么改下列,代码实现瀑布流??
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>>
<title>瀑布流布局</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
*{padding:0;
margin:0;}
#main{position:relative;
}
.box{padding:10px 0 0 10px;
float:left;}
.pic{
padding:5px;
border:1px solid #999;
border-radius:5px;
box-shadow:0 0 5 #999;}
.pic img{width:230px;
height:auto;
}</style>
</head>
<script type="text/javascript">
window.onload=function(){
waterfall("main","box");
var dataimg={"data":[{"src":"http://pic17.nipic.com/20111025/6957597_163322054332_2.jpg"},
{"src":"http://pica.nipic.com/2007-12-03/2007123141415713_2.jpg"},
{"src":"http://pic4.nipic.com/20090823/3193830_121855091_2.jpg"},
{"src":"http://pic.nipic.com/2008-01-16/200811683222770_2.jpg"},
{"src":"http://pic9.nipic.com/20100904/5041436_154436449375_2.jpg"},
{"src":"http://pic1.nipic.com/2008-12-09/200812912540990_2.jpg"},
{"src":"http://pic19.nipic.com/20120315/4758005_091854125000_2.jpg"},
{"src":"http://pic1a.nipic.com/2008-10-27/200810279545868_2.jpg"},
{"src":"http://pic3.nipic.com/20090525/2416945_231841034_2.jpg"},
{"src":"http://pica.nipic.com/2007-12-03/2007123152823533_2.jpg"}
]}
window.onscroll=function(){
if(scrollposition("main","box")){
oparent=document.getElementById("main");
for(var j=0;j<dataimg.data.length;j++){
var adiv=document.createElement("div"); //添加 元素节点
adiv.className='box'; //添加 类名 name属性
oparent.appendChild(adiv); //添加 子节点
var oBox=document.createElement('div');
oBox.className='pic';
adiv.appendChild(oBox);
var oImg=document.createElement('img');
oImg.src=dataimg.data[j].src;
oBox.appendChild(oImg);
}
waterfall('main','box');
}
}
}
function scrollposition(parent,box){
var oBoxs=getByClass(box,parent);
var hp=oBoxs[oBoxs.length-1].offsetTop+Math.floor(oBoxs[oBoxs.length-1].offsetHeight/2);
var scrtop=document.documentElement.scrollTop || document.body.scrollTop;
var mainH=document.documentElement.clientHeight;
if(hp<scrtop+mainH){
return true;
}else{
return false;
}
}
function waterfall(parent,box){
var oBoxs=getByClass(box,parent);
var mainW=document.documentElement.clientWidth;
var oBoxW=oBoxs[0].offsetWidth;
var clos=Math.floor(document.documentElement.clientWidth/oBoxW);
var oparent=document.getElementById(parent);
oparent.style.cssText='width:'+oBoxW*clos+'px; margin:0 auto;';
var arr=new Array();
for(var i=0;i<oBoxs.length;i++){
var oBoxH=oBoxs[i].offsetHeight;
if(i<clos){
arr.push(oBoxs[i].offsetHeight);
}else{
var minH=Math.min.apply(null,arr);
var index=getMinHindex(arr,minH);
oBoxs[i].style.position='absolute';
oBoxs[i].style.top=minH+'px';
oBoxs[i].style.left=oBoxs[index].offsetLeft+'px'
arr[index]+=oBoxs[i].offsetHeight;
}
}
}
function getMinHindex(arr,val){
for(var j=0;j<arr.length;j++){
if(arr[j]<=val){
return j;
}
}
}
function getByClass(clsName, parent){
//定义函数getByClass()实现获取document或指定父元素下所有class为on的元素
var oelements;
if(parent){
oelements=document.getElementById(parent).getElementsByTagName("*");
}else{
oelements=document.getElementsByTagName("*");
}
var elearr=new Array();
for(var i=0;i<oelements.length;i++){
if(oelements[i].className==clsName){
elearr.push(oelements[i]);
}
}
return elearr;
}
</script>
<body>
<div id="main">
<div class="box">
<div class="pic">
<img src=http://image.tianjimedia.com/uploadImages/2011/252/8GO666XNQM49.jpg />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://hiphotos.baidu.com/1985129/pic/item/d05c8ed3cc27b16e970a16b1.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://pic2.nipic.com/20090415/2137336_074730000_2.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://pic1.nipic.com/20090320/657979_215251058_2.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://pic32.nipic.com/20130715/13232606_164243348120_2.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://pic.duowan.com/tx2/1205/201189276629/201189504837.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://imgsrc.baidu.com/forum/pic/item/c69ae2003af33a87ecb1c796c65c10385143b585.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://s6.sinaimg.cn/middle/6753066ftc67bdde1ca25&690" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://ww1.sinaimg.cn/mw600/8758e340jw1e80ptpik3sj21hc0u0gxb.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://s7.sinaimg.cn/middle/73c68f59ha24176b9fff6&690" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://pub.chinaunix.net/uploadfile/201204/20120422080605108.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://img1.ph.126.net/f0PNgS5xHvIoP87RDZIh3w==/6597568944937413022.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://images.ali213.net/picfile/pic/2012-12-25/927_q28.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://img2.3lian.com/2014/f7/5/22.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://cdnq.duitang.com/uploads/item/201504/27/20150427155902_8ZFeT.jpeg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://img05.tooopen.com/images/20150314/tooopen_sy_82508981539.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://imgsrc.baidu.com/forum/pic/item/0ea6ba6eddc451da3189c429b6fd5266d116326c.jpg" />
</div>
</div>
<div class="box">
<div class="pic">
<img src="http://imgsrc.baidu.com/forum/pic/item/08afc680b1b6534c495403a9.jpg" />
</div>
</div>
</div>
</body>
</html>
点解点解