为了账号安全,请及时绑定邮箱和手机立即绑定

图片在滚动之后叠加在一起了

// JavaScript Document
//第一步获取元素
window.onload=function(){
	var main=document.getElementById('main');
	var box=getName(main,'box');
	var dataInt={"data":[{"src":'P_00.jpg'},
	{"src":'P_01.jpg'},
	{"src":'P_02.jpg'},
	{"src":'P_03.jpg'},
	{"src":'P_04.jpg'}]}
window.onscroll=function(){ 
	if(checkedit){
		for(var i=0;i<dataInt.data.length;i++){
	var cbox=document.createElement('div');
	cbox.className='box';
	main.appendChild(cbox);
	var cpic=document.createElement('div');
	cpic.className='pic';
	cbox.appendChild(cpic);
	var cimg=document.createElement('img');
	cimg.src="images/"+dataInt.data[i].src;
	cpic.appendChild(cimg);
		}
	waterfull();	
	}
	
}//onscroll
function waterfull(){
	//console.log(box.length);
//第二步 将图片放到高度最小的图片下面
var cols=Math.floor(document.documentElement.clientWidth/box[0].offsetWidth);
//列数
var hrry=[];
//新建数组用来储存高度值
for(var i=0;i<box.length;i++){
	if(i<cols){
		hrry.push(box[i].offsetHeight);
		
		}	
	 else{
		var minH=Math.min.apply(null,hrry);
		var index=getIndex(hrry,minH);
		box[i].style.position='absolute';
		box[i].style.top=minH+'px';
		//box[i].style.left=cols*index+'px';
		box[i].style.left=box[index].offsetLeft+'px';
		hrry[index]+=box[i].offsetHeight;
		console.log(hrry);
		}	
	}
}//waterfull
//获取高度值最小的序号
function getIndex(arry,val){
	for(i in arry){
		if(arry[i]==val){
			return i;
			}
		}
	}
//获取class名的元素	
function getName(parent,child){
	var arry=[];
	var ele=parent.getElementsByTagName('*');
	for(var i=0;i<ele.length;i++){
		if(ele[i].className==child){
			arry.push(ele[i]);
			}
		}
		return arry;
	}//getname
//检查是否应该加载图片
function checkedit(){
	var lastbox=box[box.length-1];
	var boxh=lastbox.offsetTop+Math.floor(lastbox.offsetHeight/2);
	var mainh=document.body.clientHeight||document.documentElement.clientHeight;
	var scrolltop=document.body.scrollTop||document.documentElement.scrollTop;
	return (boxh<scrolltop+mainh)?true:false;
	}			
}


正在回答

3 回答

是不是css里面写错了,应该为相对定位

0 回复 有任何疑惑可以回复我~

43行写了绝对定位

box[i].style.position='absolute';


0 回复 有任何疑惑可以回复我~

没有绝对定位吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

图片在滚动之后叠加在一起了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信