js瀑布流布局的實現(xiàn)
本文實例為大家分享了js實現(xiàn)瀑布流布局的具體代碼,供大家參考,具體內(nèi)容如下
原理:
1、瀑布流布局,要求進行布局的元素等寬,然后計算元素的寬與瀏覽器的寬度之比,得到需要布置的列數(shù)。2、創(chuàng)建一個數(shù)組,長度為列數(shù),數(shù)組元素為每一列已布置元素的總高度。(一開始為0)。3、將未布置的元素,依次布置到高度最小的那一列,然后更新這一列的高度,就得到了瀑布流布局

實現(xiàn)
布局
<body> <div id='content'> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.piao2010.com/bcjs/14569.html' > </div> <!-- 很多很多圖片 --> </div></body>
js:
$(function(){ waterFall();})function waterFall(){ //計算出每個圖片盒子的寬度 var box = $(’#box’); var boxWidth = box.outerWidth(); //計算出屏幕的寬度 var screenWidth = $(window).width(); //計算出有多少列 var cols = parseInt(screenWidth / boxWidth); //定義一行圖片盒子的高度數(shù)組,找出數(shù)組中最少的值 var heigthArr =[]; //所有圖片循環(huán) $.each(box,function(item,index){ var boxHeigth = box.outerHeigth(); //判斷是否第一排 if(index < cols){ //如果是第一排,取高度,追加到數(shù)組中 heigthArr[index] = boxHeigth; }else{ //最小圖片高度 var minBoxHeigth = Math.min.apply(null,heigthArr); //最小圖片的索引 var minBoxIndex = $.inArray(minBoxHeigth,heigthArr); $(item).css({ position:’absolute’, left:minBoxIndex * boxWidth + ’px’, top:minBoxHeigth + ’px’ }); heigthArr[minBoxIndex]+=boxHeigth;//更新高度 } })}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. java 運行報錯has been compiled by a more recent version of the Java Runtime2. UTF8轉(zhuǎn)成GB2312亂碼問題解決方案3. java基于mongodb實現(xiàn)分布式鎖的示例代碼4. 新手學(xué)python應(yīng)該下哪個版本5. 詳解CSS偽元素的妙用單標(biāo)簽之美6. 如何用tempfile庫創(chuàng)建python進程中的臨時文件7. 如何利用Python matplotlib繪制雷達(dá)圖8. 低版本IE正常運行HTML5+CSS3網(wǎng)站的3種解決方案9. 學(xué)習(xí)Python需要哪些工具10. Spring中@Value讀取properties作為map或list的操作

網(wǎng)公網(wǎng)安備