課程
/前端開發(fā)
/JavaScript
/瀑布流布局
怎么練習(xí)題的代碼沒有啊?
2015-05-13
源自:瀑布流布局 2-6
正在回答
<script type=”text/javascript”>?window.onload=function(){???? waterfall('main','box');}function waterfall(parent,box){? var oParent=document.getElementById(parent);? var oBoxs=getByClass(oParent,box);? var oBoxW = oBoxs[0].offsetWidth;? var cols = Math.floor(document.documentElement.clientWidth / oBoxW);? oParent.style.cssText = 'width:'+oBoxW*cols+'px;margin:0 auto;';? var hArr = [];for(var i=0;i<oBoxs.length;i++){??? if(i<cols){?????? // 將圖片的高度值添加到數(shù)組中?????? hArr.push(oBoxs[i].offsetHeight);??? }else{????? // 求最小值和最小值的索引????? var minH = Math.min.apply(null,hArr);
// 計(jì)算及定義圖片出現(xiàn)的位置????? oBoxs[i].style.position='absolute';????? var index = getMinhIndex(hArr,minH);????? ????? // 改變數(shù)組值???? oBoxs[i].style.position='absolute';??? ??oBoxs[i].style.top=minH+'px';???oBoxs[i].style.left=oBoxs[index].offsetLeft+'px';???hArr[index]+=oBoxs[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ù)組中的索引,arr接收的是數(shù)組,val接收的是判斷的值function getMinhIndex(arr,val){??? for(var i in arr){??????? if(arr[i] == val){???return i;??}?}}</script>
function getByClass(clsName, parent){?//定義函數(shù)getByClass()實(shí)現(xiàn)獲取document或指定父元素下所有class為on的元素? parent = parent?parent:document;var onArr=new Array(),??? onEls=parent.getElementsByTagName('*');?? for(var i=0;i<onEls.length;i++)?? {?????? if(onEls[i].className==clsName){?????????? onArr.push(onEls[i]);?????? }?? }
??? return onArr;???
}
舉報(bào)
瀑布流布局是網(wǎng)站比較流行的一種布局方式,教你實(shí)現(xiàn)三大方式
2 回答2-2練習(xí)題 黑屏 ???
2 回答最后練習(xí)題第四點(diǎn)
2 回答代碼問題不了解
2 回答代碼的疑問
2 回答代碼快照怎么存的
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-16
<script type=”text/javascript”>
?window.onload=function(){
???? waterfall('main','box');
}
function waterfall(parent,box){
? var oParent=document.getElementById(parent);
? var oBoxs=getByClass(oParent,box);
? var oBoxW = oBoxs[0].offsetWidth;
? var cols = Math.floor(document.documentElement.clientWidth / oBoxW);
? oParent.style.cssText = 'width:'+oBoxW*cols+'px;margin:0 auto;';
? var hArr = [];
for(var i=0;i<oBoxs.length;i++){
??? if(i<cols){
?????? // 將圖片的高度值添加到數(shù)組中
?????? hArr.push(oBoxs[i].offsetHeight);
??? }else{
????? // 求最小值和最小值的索引
????? var minH = Math.min.apply(null,hArr);
// 計(jì)算及定義圖片出現(xiàn)的位置
????? oBoxs[i].style.position='absolute';
????? var index = getMinhIndex(hArr,minH);
?????
????? // 改變數(shù)組值
???? oBoxs[i].style.position='absolute';
??? ??oBoxs[i].style.top=minH+'px';
???oBoxs[i].style.left=oBoxs[index].offsetLeft+'px';
???hArr[index]+=oBoxs[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ù)組中的索引,arr接收的是數(shù)組,val接收的是判斷的值
function getMinhIndex(arr,val){
??? for(var i in arr){
??????? if(arr[i] == val){
???return i;
??}
?}
}
</script>
2015-06-16
function getByClass(clsName, parent){
?//定義函數(shù)getByClass()實(shí)現(xiàn)獲取document或指定父元素下所有class為on的元素?
parent = parent?parent:document;
var onArr=new Array(),
??? onEls=parent.getElementsByTagName('*');
?? for(var i=0;i<onEls.length;i++)
?? {
?????? if(onEls[i].className==clsName){
?????????? onArr.push(onEls[i]);
?????? }
?? }
??? return onArr;???
}