課程
/前端開發(fā)
/JavaScript
/瀑布流布局
加了js后,css的圓角框,padding之類的都沒了
2016-11-05
源自:瀑布流布局 2-3
正在回答
同求解
qq_overdose_4 提問者
js部分
window.onload=function(){ ? ?waterfall('main','box');}//根據class獲取元素function getByClass(parent,clsName){ ? ?var boxArr=new Array(); ? ?//用來存儲獲取到的所有class為box的元素 ? ?oElements=parent.getElementsByTagName("*"); ?//獲取父元素下所有的子元素 ? ?for(var i=0;i<oElements.length;i++) ? ?{ ? ? ? ?if(oElements[i].className=clsName) ? ?//找到要找的元素 ? ? ? ?{ ? ? ? ? ? ?boxArr.push(oElements[i]); ? ? ? ?} ? ?} ? ?return boxArr;}function getMinhIndex(arr,val){ ? ?for(var i in arr) ? ?{ ? ? ? ?if(arr[i]==val) ? ? ? ?{ ? ? ? ? ? ?return i; ? ? ? ?} ? ?}}function waterfall(parent,box){ ? ?//將main下的所有class為box的元素取出來 ? ?var oParent=document.getElementById(parent); ? ?var oBoxs=getByClass(oParent,box); ? ?//計算整個頁面顯示的列數(頁面寬/box的寬) ? ?var oBoxW=oBoxs[0].offsetWidth; ? ?// 列數 ? ?var cols=Math.floor(document.documentElement.clientWidth/oBoxW); ? ?//設置main的寬 ? ?oParent.style.cssText='width:'+oBoxW*cols+'px;marign:0 auto'; ? ?var hArr=[]; ? ? //存放每一行高度的數組 ? ?for(var i=0;i<oBoxs.length;i++) ? ?{ ? ? ? ?if(i<cols) ? ? ? ?{ ? ? ? ? ? ?hArr.push(oBoxs[i].offsetHeight); ? ? ? ?} ? ? ? ?else{ ? ? ? ? ? ?var minH=Math.min.apply(null,hArr); ? ? ? ? ? ?var index=getMinhIndex(hArr,minH); ? ? ? ? ? ?oBoxs[i].style.position='absolute'; ? ? ? ? ? ?oBoxs[i].style.top=minH+'px'; ? ? ? ? ? ?oBoxs[i].style.left=oBoxs[index].offsetLeft+'px'; ? ? ? ? ? ?hArr[index]+=oBoxs[i].offsetHeight; ? ? ? ?} ? ?}}
淺淺媽
源代碼是什么?
舉報
瀑布流布局是網站比較流行的一種布局方式,教你實現三大方式
7 回答怎么回事?我導入js腳本,樣式就無效了?
3 回答仿照著做了一下,但是為什么會是這樣的效果?
2 回答求問:js瀑布流為什么從后臺得到的圖片加上去沒有瀑布流的效果?
2 回答為什么我做的和老師做出的效果不一樣
2 回答為什么加載json傳過來的圖片沒有樣式???
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-07
同求解
2016-11-05
js部分
window.onload=function(){
? ?waterfall('main','box');
}
//根據class獲取元素
function getByClass(parent,clsName)
{
? ?var boxArr=new Array(); ? ?//用來存儲獲取到的所有class為box的元素
? ?oElements=parent.getElementsByTagName("*"); ?//獲取父元素下所有的子元素
? ?for(var i=0;i<oElements.length;i++)
? ?{
? ? ? ?if(oElements[i].className=clsName) ? ?//找到要找的元素
? ? ? ?{
? ? ? ? ? ?boxArr.push(oElements[i]);
? ? ? ?}
? ?}
? ?return boxArr;
}
function getMinhIndex(arr,val)
{
? ?for(var i in arr)
? ?{
? ? ? ?if(arr[i]==val)
? ? ? ?{
? ? ? ? ? ?return i;
? ? ? ?}
? ?}
}
function waterfall(parent,box)
{
? ?//將main下的所有class為box的元素取出來
? ?var oParent=document.getElementById(parent);
? ?var oBoxs=getByClass(oParent,box);
? ?//計算整個頁面顯示的列數(頁面寬/box的寬)
? ?var oBoxW=oBoxs[0].offsetWidth;
? ?// 列數
? ?var cols=Math.floor(document.documentElement.clientWidth/oBoxW);
? ?//設置main的寬
? ?oParent.style.cssText='width:'+oBoxW*cols+'px;marign:0 auto';
? ?var hArr=[]; ? ? //存放每一行高度的數組
? ?for(var i=0;i<oBoxs.length;i++)
? ?{
? ? ? ?if(i<cols)
? ? ? ?{
? ? ? ? ? ?hArr.push(oBoxs[i].offsetHeight);
? ? ? ?}
? ? ? ?else{
? ? ? ? ? ?var minH=Math.min.apply(null,hArr);
? ? ? ? ? ?var index=getMinhIndex(hArr,minH);
? ? ? ? ? ?oBoxs[i].style.position='absolute';
? ? ? ? ? ?oBoxs[i].style.top=minH+'px';
? ? ? ? ? ?oBoxs[i].style.left=oBoxs[index].offsetLeft+'px';
? ? ? ? ? ?hArr[index]+=oBoxs[i].offsetHeight;
? ? ? ?}
? ?}
}
2016-11-05
源代碼是什么?