js瀑布流布局的實(shí)現(xiàn)
本文實(shí)例為大家分享了js實(shí)現(xiàn)瀑布流布局的具體代碼,供大家參考,具體內(nèi)容如下
原理:
1、瀑布流布局,要求進(jìn)行布局的元素等寬,然后計(jì)算元素的寬與瀏覽器的寬度之比,得到需要布置的列數(shù)。2、創(chuàng)建一個(gè)數(shù)組,長(zhǎng)度為列數(shù),數(shù)組元素為每一列已布置元素的總高度。(一開(kāi)始為0)。3、將未布置的元素,依次布置到高度最小的那一列,然后更新這一列的高度,就得到了瀑布流布局
實(shí)現(xiàn)
布局
<body> <div id='content'> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.lshqa.cn/bcjs/14569.html' > </div> <!-- 很多很多圖片 --> </div></body>
js:
$(function(){ waterFall();})function waterFall(){ //計(jì)算出每個(gè)圖片盒子的寬度 var box = $(’#box’); var boxWidth = box.outerWidth(); //計(jì)算出屏幕的寬度 var screenWidth = $(window).width(); //計(jì)算出有多少列 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;//更新高度 } })}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲2. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))3. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法4. 使用EF Code First搭建簡(jiǎn)易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫(kù)遷移5. HTML5 Canvas繪制圖形從入門到精通6. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息7. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式8. JavaScript實(shí)現(xiàn)組件化和模塊化方法詳解9. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法10. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明
