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

實(shí)現(xiàn)
布局
<body> <div id='content'> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.cn/bcjs/14569.html' > </div> <div id='box'> <img src='http://www.leifengta.com.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;//更新高度 } })}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Android table布局開發(fā)實(shí)現(xiàn)簡單計(jì)算器2. IntelliJ IDEA安裝插件的方法步驟3. 理解PHP5中static和const關(guān)鍵字4. php模擬實(shí)現(xiàn)斗地主發(fā)牌5. spring acegi security 1.0.0 發(fā)布6. MyBatis中的JdbcType映射使用詳解7. vue 使用localstorage實(shí)現(xiàn)面包屑的操作8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. Vuex localStorage的具體使用

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