為什么我的scrollTop獲得的值無法滿足條件?
window.onload=function(){ ????????waterfall(); ????????window.onscroll=function(){ ???????????? ????var?parent=document.getElementById("main"); ????var?boxs=getByClass(parent,"box"); ????var?scrollH=document.documentElement.scrollTop||document.body.scrollTop; ???????var?documentH=scrollH+document.documentElement.clientHeight; ????var????lastH=boxs[boxs.length-1].offsetTop+Math.floor(boxs[boxs.length-1].offsetHeight/2); ???????/*763*/ ????? ????????if(lastH-350<documentH){??????//這里的lastH不減掉350,就無法進入if語句??? ????????????????????????????????/*465*/ dataInt={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"7.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"}]}; for(var?i=0;i<dataInt.data.length;i++){ ????????var?divB=document.createElement("div"); ????????divB.className="box"; ????????parent.appendChild(divB); ????????var?divP=document.createElement("div"); ????????divP.className="pic"; ????????divB.appendChild(divP); ????????myimg=document.createElement("img"); ????????myimg.src="./images/"+dataInt.data[i].src; ???????? ????????divP.appendChild(myimg); } waterfall(); } } } function?waterfall(){ ???? var?oParent=document.getElementById("main"); var?boxs=getByClass(oParent,"box"); var?boxW=boxs[0].offsetWidth; var?num=Math.floor(document.documentElement.clientWidth/boxW); oParent.style.cssText="width:"+boxW*num+"px;margin:0?auto;"; ?? ????boxHarr=new?Array(); ????for(var?i=0;i<boxs.length;i++){ ????????if(i<num){ ????????????boxHarr.push(boxs[i].offsetHeight); ????????}else{ ??????????? ????????????var?minH=Math.min.apply(null,boxHarr); ????????????var?minHindex=getminHindex(boxHarr,minH); ????????????boxs[i].style.position="absolute"; ????????????boxs[i].style.top=minH+"px"; ????????????boxs[i].style.left=minHindex*boxW+"px"; ????????????//boxs[i].style.left=boxs[minHindex].offsetLeft+"px"; ????????????boxHarr[minHindex]=boxHarr[minHindex]+boxs[i].offsetHeight; ????????} ????} } function?getByClass(parent,clsName){ ????a=parent.getElementsByTagName('*'); ????var?arr=[]; ????for(var?i=0;i<a.length;i++){ ????????if(a[i].className==clsName){ ????????????arr.push(a[i]); ????????} ????} ????return?arr; } function?getminHindex(arr,minH){ ???? ????for(var?i?in?arr){ ????????if(arr[i]==minH) ????????????return?i;???? ????} }
減掉350或者其它數(shù)值以后,可以完全正常運行,但是用原值就無法進入IF語句?
2016-09-18
問題錯了,應(yīng)該是offsetTop無法滿足條件,還有,同樣想問為什么頁面收窄以后再放大,第一排的圖片就無法完全顯示了?看過一些解答,還是不太懂。