原生JS實現瀑布流布局

2021-08-23 12:43:53 字數 1290 閱讀 8755

一.瀑布流之準備工作

首先宣告下, 為了方便演示和聯絡, 我使用的是本地, 如果大家有需要的話可以嘗試著寫下網路的, 不過本地和遠端的大致是相同的. 那麼我就來簡單介紹下本地的瀑布流效果吧, 我們要先準備好**張, 當然啦, 我們實現的是瀑布流效果, 所以最好是高度不相同的, 這樣才可以看出來效果, 對吧, 嘿嘿.

二.**的準備工作

我們開啟開發工具, 先建個html工程, 在內部寫下如下**, 因為是準備工作, 所以剛開始寫的都是一些基礎性的東西, 就不一一解釋了, 直接上**:

很明顯這段**中也就是幾個div標籤和幾個img標籤, 所以是很簡單的, 就不多說了, 下面我們來布置css樣式.

三.css樣式布置

說句比較實在的話, 對於瀑布流而言, 因為我只是簡單的模擬下, 所以css樣式的定製, 我並沒有特別複雜的定製, 只是簡單的把邊框和容器(div)大小給定製了下, 還有一些顏色, 話不多說, 直接上**吧

/*使用萬用字元將內外邊距都設定為零, 這樣看著好看*/

*/*將主容器的布局方式設定為相對布局*/

#contianer

.box

/*將承載的容器定製顏色及邊框大小和圓角*/

.boximg

/*定製尺寸*/

.boximg img

**中注釋已經解釋的很清楚了, 就不再過多的贅述了.

四.重點也是瀑布流的難點(js的實現)

大家對於瀑布流都不陌生吧, 它主要是頂寬的, 然後根據高度來進行布局, 也就是說在第一行鋪滿後, 準備排布第二行的時候, 將第二行的第一種放在第一行高度最小處, 之後依次類推, 先簡單的上些**, 然後一一作解釋了, 正所謂有圖有真相, 哈哈!

}//返回該陣列

return chirldarr;

}function getminheightofcols(chirdarr, num) else

}}//此方法是為了進行最小高度下標的確定

function getminindex(onlyonecolsarr, min)}}

通過原生JS實現瀑布流布局

由於工作需要,花了幾天時間研究瀑布流布局。該布局可以使用原生js jquery 以及css3來實現,目前的工作場景不允許使用css3 主要是ie 所以本文主要針對原生js。一 需要掌握的知識點 document.body 與 document.documentelement的相容性 var html...

原生JS瀑布流布局賞析

本效果的思想 於以下這邊文章 瀑布流布局主要分為兩部分 1 資料塊排列,演算法步驟簡述下 初始化時,對容器中已有資料塊元素進行第一次計算,需要使用者給定 a,容器元素 以此獲取容器總寬度 b,列寬度 最終列數取的是容器寬度 列寬度 獲得列數後,需要儲存每個列的當前高度,這樣在新增每個資料塊時,才知道...

js實現瀑布流布局

1.瀑布流的布局,要求布局的元素是等寬的,瀑布流布局的特點就是等寬不等高,然後計算元素的寬度和瀏覽器螢幕寬度的比值,確定出列數 2.建立乙個陣列,這個陣列用於儲存第一行的各個高度 3.計算出這個陣列中最小的元素,接下來的通過定位的方式布局到高度最小的下面,4.最後將這個最小高度進行更新,然後一直迴圈...