在”同學(xué)代碼“中運(yùn)行,瀏覽器的clientWidth獲取不到
開始寫的是:
?var?broW?=?document.documentElement.clientWidth?;
取不到值。
后來改成:
?var?broW?=?document.documentElement.clientWidth?||document.body.clientWidth;
還是取不到值,刷新也不行,注意是在”同學(xué)代碼“中看自己的代碼,點(diǎn)運(yùn)行,取不到
我寫的源碼如下
<!Doctype> <html> ?<head> ???<title>瀑布流布局</title> ???<meta?charset="utf-8"?/> ???<style> ???????*{padding:?0;margin:0;} ????#main{ ????????position:?relative ????} ????.box{ ????????padding:?15px?0?0?15px; ????????float:left; ????} ????.pic{ ????????padding:?10px; ????????border:1px?solid?#ccc; ????????box-shadow:?0?0?6px?#ccc; ????????border-radius:?5px; ????} ????.pic?img{ ????????width:162px; ????????height:auto; ????} ??????? ???</style> ?</head> ?<body> ?????<div?id="main"> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edadad0001efe202000070.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad8c000175cb00300029.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad3e0001afad10000318.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad2c0001b61310000314.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad1600019ae910000310.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad54000119fb03300130.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad690001260a03300130.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad7a0001cde803300130.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edacdd0001b8e804820302.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edadad0001efe202000070.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad8c000175cb00300029.jpg"?/> ? </div> ? </div> ?????????<div?class="box"> ????? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad2c0001b61310000314.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad1600019ae910000310.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad54000119fb03300130.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad690001260a03300130.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad7a0001cde803300130.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edacdd0001b8e804820302.jpg"?/> ? </div> ? </div> ? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edadad0001efe202000070.jpg"?/> ? </div> ? </div> ?? <div?class="box"> ? <div?class="pic"> ? <img?src="http://img1.sycdn.imooc.com//53edad8c000175cb00300029.jpg"?/> ? </div> ? </div> </div> ????<script?type="text/javascript"> ?window.onload=function(){ ?????//?調(diào)用瀑布流函數(shù),傳入兩個(gè)參數(shù),main塊和每張圖片所在的box塊 ????wallFall("main","box"); var?dataInt?=?{ 'data':[ {'src':'0.jpg'}, {'src':'1.jpg'}, {'src':'2.jpg'} ] }; // 判斷是否可以加載數(shù)據(jù) window.onscroll?=?function(){ if(checkPic()){ for(var?i=0;i<dataInt.data.length;i++) { var?oParent?=?document.getElementById('main'); // 創(chuàng)建父層div,box、pic var?box?=?document.createElement("div"); box.className?=?"box"; oParent.appendChild(box); var?pic?=?document.createElement("div"); pic.className?=?"pic"; box.appendChild(pic); var?im?=?document.createElement("img"); im.src?=?"images/"+dataInt.data[i].src; pic.appendChild(im); } wallFall("main","box"); } } } //????瀑布流函數(shù) function?wallFall(parent,box){ var?oParent?=?document.getElementById(parent); var?boxArr?=?getByClass(oParent,"box"); // 獲取瀏覽器一行可以容納的圖片個(gè)數(shù) var?picW?=?boxArr[0].offsetWidth; ????var?broW?=?document.documentElement.clientWidth?||document.body.clientWidth; var?num?=?Math.floor(broW/picW); ????alert(broW); //alert(num); // 固定main(oParent)的寬度,居中顯示 oParent.style.cssText?=?"width:"+(picW*num)+"px;margin:0?auto;"; // 存儲(chǔ)第一行6張圖片高度,找出最小的那個(gè) var?oH?=?new?Array(); for(var?i=0;i<boxArr.length;i++){ if(i<num){ oH[i]?=?boxArr[i].offsetHeight; }else{ // 找到num個(gè)高度中最小的一個(gè),將下一張圖片插到下方,更新oH數(shù)組中的值 var?oMin?=?Math.min.apply(null,oH); var?ind?=?getIndex(oH,oMin); boxArr[i].style.position?=?"absolute"; boxArr[i].style.top?=?oMin+"px"; //console.log("oH[ind].offsetLeft"+oH[ind].offsetLeft); boxArr[i].style.left?=?picW*ind+"px"; oH[ind]?+=?boxArr[i].offsetHeight; } } } function?getByClass(parent,clsName){ ??var?boxArr=new?Array(),? ??????oElements=parent.getElementsByTagName('*'); ??for(var?i=0;i<oElements.length;i++){ ????if(oElements[i].className==clsName){ ??????boxArr.push(oElements[i]); ????} ??} ??return?boxArr; } //獲取數(shù)組中值為value的下標(biāo) function?getIndex(arr,value){ ????for(var?i=0;i<arr.length;i++) { if(arr[i]?==?value) return?i; } return?-1; } function?checkPic(){ ????var?oMain?=?document.getElementById("main"); var?oBoxs?=?getByClass(oMain,"box"); //console.log(oBoxs.length); // 獲取頁面滾動(dòng)的高度+頁面高度 // document.body/documentElement.scrollHeight表示瀏覽器所有內(nèi)容的高度 // document.body/documentElement.scrollTop??瀏覽器滾動(dòng)部分高度 var?broScrH?=?document.body.scrollTop?||?document.documentElement.scrollTop; // clientHeight瀏覽器可視區(qū)高度 var?broH?=?document.body.clientHeight?||?document.documentElement.clientHeight; var?bro?=?broScrH+broH; var?lastPic_broH?=?oBoxs[oBoxs.length?-?1].offsetTop; var?lastPicH?=?oBoxs[oBoxs.length?-?1].offsetHeight; var?pic?=?lastPic_broH+(lastPicH/2); return?bro>=pic?true:false; } </script> ?</body> </html> <!--?求值在數(shù)組中的索引,arr接收的是數(shù)組,val接收的是判斷的值--> <!--function?getMinhIndex(arr,val){}-->
2016-01-01
我試了下,沒問題啊,可以取值啊,