第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

發(fā)現(xiàn)BUG!窗口先縮小再放大后拖動(dòng)滾動(dòng)條圖片列數(shù)沒變,且最右列圖片重疊!

window.onload=function(){
	waterfall('main','box');
	//假設(shè)后臺(tái)需要加載的圖片
	var?dataInt={"data":[{'src':'16.jpg'},{'src':'17.jpg'},{'src':'18.jpg'},{'src':'19.jpg'},{'src':'20.jpg'},{'src':'21.jpg'},{'src':'22.jpg'},{'src':'23.jpg'},{'src':'24.jpg'},{'src':'25.jpg'},{'src':'26.jpg'},{'src':'27.jpg'},{'src':'28.jpg'},{'src':'29.jpg'},{'src':'30.jpg'},{'src':'31.jpg'},{'src':'32.jpg'},{'src':'33.jpg'},{'src':'34.jpg'},{'src':'35.jpg'},{'src':'36.jpg'},{'src':'37.jpg'},]}
	//滾動(dòng)條滑動(dòng)時(shí)間
	window.onscroll=function(){
		if(checkScrollSlide()){
			for(var?i=0;i<dataInt.data.length;i++){
				var?oParent=document.getElementById('main');
				var?oDiv=document.createElement('div');
				oDiv.className='box';
				oParent.appendChild(oDiv);
				
				var?oPic=document.createElement('div');
				oPic.className='pic';
				oDiv.appendChild(oPic);
				
				var?oImg=document.createElement('img');
				oImg.src='img/water-fall/'+dataInt.data[i].src;
				oPic.appendChild(oImg);
				}
				waterfall('main','box');
			}
		}
	}
//將Main下的class='box'取出來	
function?waterfall(parent,box){
	oParent=document.getElementById('main');
	oBox=getByClass(oParent,'box');
	//alert(oBox.length);//40
	
	//1、獲取每列的寬
	oBoxW=oBox[0].offsetWidth;
	//2、獲取列數(shù)
	cols=Math.floor(document.documentElement.clientWidth/oBoxW);?
	//3、列*寬=整個(gè)瀏覽器頁面的寬度
	oParent.style.cssText="width:"+oBoxW*cols+"px;margin:0?auto;"
	//實(shí)現(xiàn)瀑布流布局
	var?hArr=[];
	for(var?i=0;i<oBox.length;i++){
		//獲取第一行所有圖片的高度
		if(i<cols){
			hArr.push(oBox[i].offsetHeight);
			}
		else{
			//獲取第一行中高度最少的圖片并在它之后開始排列
			var?minH=Math.min.apply(null,hArr);
			//獲取高度最少圖片索引
			var?index=getIndex(hArr,minH);
			//定位接下來的圖片
			oBox[i].style.position='absolute';
			oBox[i].style.top=minH+'px';
			oBox[i].style.left=oBox[index].offsetLeft+'px';
			//***關(guān)鍵一步
			hArr[index]+=oBox[i].offsetHeight;
			}	
			
		}
	}	
function?getByClass(obj,cls){	
	var?element=obj.getElementsByTagName('*');
	var?result=[];
	for(var?i=0;i<element.length;i++){
		if(element[i].className==cls){
			result.push(element[i])
			}
		}
	return?result;	//不能漏了這一步?。?!	
}	

function?getIndex(arr,val){
	for(i?in?arr){
		if?(arr[i]==val){
			return?i;
			}
		}
	}	
	
function?checkScrollSlide(){
	var?oParent=document.getElementById('main');
	var?oBox=getByClass(oParent,'box');
	//當(dāng)最后一張圖片出現(xiàn)一半時(shí)距離他整個(gè)頁面頂部距離
	var?lastBoxH=oBox[oBox.length-1].offsetTop+Math.floor(oBox[oBox.length-1].offsetHeight/2);
	//滾動(dòng)條移動(dòng)距離和瀏覽器本身高度?*****圖片解釋在img文件夾里??!
	var?scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
	var?clientH=document.documentElement.clientHeight||document.body.clientHeight;
	return?(lastBoxH<scrollTop+clientH)?true:false;
	}




	


正在回答

1 回答

bug原因是第一行的元素未設(shè)置絕對定位,在縮小后第一行靠后的幾列元素?fù)碛辛私^對定位,再放大后,列數(shù)變大,絕對定位沒有取消,當(dāng)再次加載后,多出來的幾列的第一行元素執(zhí)行的語句為:

if (i<cols) {

? ? heiArr.push(aBox[i].offsetHeight);

}

因?yàn)橛辛私^對定位,但是沒有給定top和left值,所以會(huì)出現(xiàn)重疊現(xiàn)象;

解決辦法一:

開始判斷前,先清除第一行元素的絕對定位:

for?(var?i?=?0;?i?<?aBox.length;?i++)?{
????	for(var?j?=?0;?j?<?cols?;j++){
???????????aBox[j].style.position="";
????????}
????	if?(i<cols)?{
????		heiArr.push(aBox[i].offsetHeight);
????	}	

解決辦法二:

循環(huán)開始后,給第一行的元素也加上絕對定位:

???????if?(i<cols)?{
????		heiArr.push(aBox[i].offsetHeight);
????		aBox[i].style.position='absolute';
????		aBox[i].style.top=0;
????		aBox[i].style.left=i*oBoxW+"px";//oBoxW為元素寬度
????	}
????????else{
????		var?minH=Math.min.apply(null,heiArr);
????		var?index=getMinhIndex(heiArr,minH);
????		aBox[i].style.position='absolute';
????		aBox[i].style.top=minH+"px";
????		aBox[i].style.left=aBox[index].offsetLeft+"px";
????		heiArr[index]+=aBox[i].offsetHeight;
????	}
0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

發(fā)現(xiàn)BUG!窗口先縮小再放大后拖動(dòng)滾動(dòng)條圖片列數(shù)沒變,且最右列圖片重疊!

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)