js瀑布流布局的實現(xiàn)
本文實例為大家分享了js實現(xiàn)瀑布流布局的具體代碼,供大家參考,具體內(nèi)容如下
原理:
1、瀑布流布局,要求進(jìn)行布局的元素等寬,然后計算元素的寬與瀏覽器的寬度之比,得到需要布置的列數(shù)。2、創(chuàng)建一個數(shù)組,長度為列數(shù),數(shù)組元素為每一列已布置元素的總高度。(一開始為0)。3、將未布置的元素,依次布置到高度最小的那一列,然后更新這一列的高度,就得到了瀑布流布局
實現(xiàn)
布局
<body> <div id='content'> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://m.cgvv.com.cn/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. JSP+Servlet實現(xiàn)文件上傳到服務(wù)器功能2. 利用ajax+php實現(xiàn)商品價格計算3. 利用FastReport傳遞圖片參數(shù)在報表上展示簽名信息的實現(xiàn)方法4. chat.asp聊天程序的編寫方法5. 網(wǎng)頁中img圖片使用css實現(xiàn)等比例自動縮放不變形(代碼已測試)6. PHP循環(huán)與分支知識點梳理7. jsp實現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法8. JSP之表單提交get和post的區(qū)別詳解及實例9. Ajax請求超時與網(wǎng)絡(luò)異常處理圖文詳解10. jsp實現(xiàn)登錄驗證的過濾器
