瀑布流布局

瀑布流布局是一種比較流行的網(wǎng)站頁(yè)面布局方式缺菌,比如受淘寶首頁(yè)猜你喜歡模塊等很多大型網(wǎng)站的pc端和移動(dòng)端都大量使用的一個(gè)技術(shù)汉操,它也被稱(chēng)為瀑布流式布局
首先我們看幾個(gè)關(guān)于瀑布流的布局效果!

1.png
2.jpg

從這個(gè)兩個(gè)圖可以看出來(lái)瀑布流效果是等寬元素一次擺列,后面的元素以此添加到指定位置,布局效果很隨機(jī)不固定。

那么上面說(shuō)的指定位置,什么是指定位置呢褪秀,也就是說(shuō),當(dāng)?shù)葘挼脑嘏帕械臅r(shí)候薛训,后面添加的元素要放在所有列高度中最短的那一列媒吗,以此類(lèi)推達(dá)到瀑布流布局的效果


suanfa.png

結(jié)合瀑布流布局的思想,我們想寫(xiě)出代碼來(lái)需要完成幾個(gè)步驟

  1. 首先開(kāi)始書(shū)寫(xiě)css中就要固定好排列的每個(gè)元素的寬度
  2. 根據(jù)寬度得到需要多少列
    2-1. 初始化一個(gè)數(shù)組存入每一列的高度
  3. 把后面的元素拆入到一列中最短的高度中
    3-1.每次添加新的數(shù)組中按序排列最短的那一項(xiàng)
    3-2.插入后需要修改插入列的高度

html代碼

<style>
*{
            margin: 0;
            padding: 0;
        }

        html,body{
            width: 100%
        }

        .waterfall {
            width: 90%;
            margin: 0 auto;
            position: relative;
        }
        img{
            position: absolute;
            margin: 10px;
        }
</style>
<div class="waterfall">
                <img src="http://via.placeholder.com/100x100" alt="100*100">
                <img src="http://via.placeholder.com/100x70" alt="100*70">
                <img src="http://via.placeholder.com/100x150" alt="100*150">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x90" alt="100*90">
                <img src="http://via.placeholder.com/100x120" alt="100*120">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x230" alt="100*230">
                <img src="http://via.placeholder.com/100x100" alt="100*100">
                <img src="http://via.placeholder.com/100x70" alt="100*70">
                <img src="http://via.placeholder.com/100x150" alt="100*150">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x90" alt="100*90">
                <img src="http://via.placeholder.com/100x120" alt="100*120">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x90" alt="100*90">
                <img src="http://via.placeholder.com/100x120" alt="100*120">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x100" alt="100*100">
                <img src="http://via.placeholder.com/100x70" alt="100*70">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x230" alt="100*230">
                <img src="http://via.placeholder.com/100x100" alt="100*100">
                <img src="http://via.placeholder.com/100x70" alt="100*70">
                <img src="http://via.placeholder.com/100x150" alt="100*150">
                <img src="http://via.placeholder.com/100x150" alt="100*150">
                <img src="http://via.placeholder.com/100x230" alt="100*230">
                <img src="http://via.placeholder.com/100x70" alt="100*70">
                <img src="http://via.placeholder.com/100x150" alt="100*150">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x90" alt="100*90">
                <img src="http://via.placeholder.com/100x120" alt="100*120">
                <img src="http://via.placeholder.com/100x210" alt="100*210">
                <img src="http://via.placeholder.com/100x250" alt="100*250">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x80" alt="100*80">
                <img src="http://via.placeholder.com/100x90" alt="100*90">
                <img src="http://via.placeholder.com/100x120" alt="100*120">
                <img src="http://via.placeholder.com/100x210" alt="100*210"> 
            </div>

jquery代碼

//一列放多少個(gè)
var colNum
//新建數(shù)組存儲(chǔ)每列高度
var colHeightArray = []
//獲取圖片的寬度
var imgWidth = $('.waterfall img').outerWidth(true)
//列數(shù)值
colNum = Math.floor(  $('.waterfall').width()/imgWidth )
for( var i = 0 ; i < colNum ; i++ ){
  colHeightArray[i] = 0
}


$('.waterfall img').on('load',function(){
      //初始化數(shù)組最小值為索引為0的值
      var minValue = colHeightArray[0]
      //初始化數(shù)組最小值為索引
      var minIndex =  0
      for(var i = 0 ; i < colNum ; i++ ){
            if(colHeightArray[i] < minValue){
                 minValue = colHeightArray[i] 
                 minIndex = i
           }
      }
                   
     $(this).css({
         left:minIndex * imgWidth,
         top:minValue
      })

     colHeightArray[minIndex] += $(this).outerHeight(true);
     console.log(colHeightArray[minIndex])
 })
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乙埃,一起剝皮案震驚了整個(gè)濱河市闸英,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌介袜,老刑警劉巖甫何,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異遇伞,居然都是意外死亡辙喂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)鸠珠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)巍耗,“玉大人,你說(shuō)我怎么就攤上這事渐排【嫣” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵驯耻,是天一觀的道長(zhǎng)亲族。 經(jīng)常有香客問(wèn)我,道長(zhǎng)可缚,這世上最難降的妖魔是什么孽水? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮城看,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杏慰。我一直安慰自己测柠,他們只是感情好炼鞠,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著轰胁,像睡著了一般谒主。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赃阀,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天霎肯,我揣著相機(jī)與錄音,去河邊找鬼榛斯。 笑死观游,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驮俗。 我是一名探鬼主播懂缕,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼王凑!你這毒婦竟也來(lái)了搪柑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤索烹,失蹤者是張志新(化名)和其女友劉穎工碾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體百姓,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渊额,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓣戚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片端圈。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖子库,靈堂內(nèi)的尸體忽然破棺而出舱权,到底是詐尸還是另有隱情,我是刑警寧澤仑嗅,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布宴倍,位于F島的核電站,受9級(jí)特大地震影響仓技,放射性物質(zhì)發(fā)生泄漏鸵贬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一脖捻、第九天 我趴在偏房一處隱蔽的房頂上張望阔逼。 院中可真熱鬧,春花似錦地沮、人聲如沸嗜浮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)危融。三九已至畏铆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吉殃,已是汗流浹背辞居。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛋勺,地道東北人瓦灶。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像迫卢,于是被迫代替她去往敵國(guó)和親倚搬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • (本文主要講一下現(xiàn)在比較流行的一種布局方式----瀑布流布局 如有寫(xiě)的不好的地方 還請(qǐng)多多指正 感謝) 1乾蛤、功能分...
    論丶道閱讀 986評(píng)論 0 5
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案每界? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,759評(píng)論 1 92
  • 瀑布流典型網(wǎng)站 花瓣網(wǎng)、堆糖 [目錄](méi) 瀑布流布局原理大體思路具體思路 插件封裝(5步) 動(dòng)態(tài)渲染需求分析渲染第一...
    頑皮的雪狐七七閱讀 3,960評(píng)論 0 6
  • 好久沒(méi)有寫(xiě)文章了家卖,不是放棄眨层,是正視自己,想寫(xiě)一下東西上荡,只是為了安慰自己趴樱,其實(shí)實(shí)實(shí)在在,自己不是寫(xiě)字的材料酪捡,為了湊字...
    宋世巍閱讀 219評(píng)論 0 0
  • 終于叁征,在媽媽的“125只綿羊,咩咩咩”中逛薇,兒子翻了翻身捺疼,媽媽拍了拍,鼾聲均勻永罚,香甜入夢(mèng)了啤呼,因?yàn)樗坝行┡d奮,所以即...
    暗自芳香閱讀 1,364評(píng)論 0 0