手摸手,帶你實現移動端H5瀑布流布局

2022-10-10 21:42:20 字數 1441 閱讀 6323

移動端瀑布流布局是一種比較流行的網頁布局方式,視覺上來看就是一種像瀑布一樣垂直落下的排版。每張並不是顯示的正正方方的,而是有的長有的短,呈現出一種不規則的形狀。但是它們的寬度通常都是相同的

因為移動端瀑布流布局主要為豎向瀑布流,因此本文所**的是豎向瀑布流

豎向瀑布流布局主要有下面幾種特點:

不同於傳統的分頁,瀑布流因為以上這些特點一般被用在這些場景下:

一般來說主要分為 css 實現和 js 實現

css 實現主要是用到一些專門的樣式屬性,實現起來簡單,但是往往會有相容性問題

js 實現的方法則不存在這些問題,並且能實現比較個性化的需求,但是實現起來比較麻煩

column 實現瀑布流主要依賴兩個屬性

column-count 屬性是設定共有幾列

column-gap 屬性是設定每列之間的間隔

column 相容性

**

001    ······

008

flex 實現瀑布流需要給父元素設定為橫向排列。然後通過設定flex-flow: column wrap使其換⾏

**

001    ······

008

效果

可以發現排序順序是先垂直方向,然後才是水平方向的。column 多列布局和 flex 彈性布局方法實現的效果圖最終相似

在不考慮相容性或者沒有特殊展示順序需求下,只是實現瀑布流的話上面兩種方案是夠用的。如果要實現一些個性化的需求的話,還是得用 js

主要思路就是:

先將第一行排滿

計算第一行的所有高度,將第二行第一張圖放在第一行最矮的後面

進行玩步驟 2,重新計算當前所有列高度,避免步驟 2 新增完成後,該列高度還是最矮

完整**

001        

015

效果

不同於上面兩個 css 實現的瀑布流,js 實現的排序順序是先水平方向,然後才是垂直方向

可以看到當滾動頁面的時候,新的會不斷新增進來,這樣就實現懶載入了

如果實現效果簡單不考慮相容的的話可以選擇使用 css 實現;若要相容老版本瀏覽器或者實現一些個性化的需求還是得用 js 實現

當然除了上文說的這些方法以外,也可以使用第三方庫 masonry 實現

帶你使用h5開發移動端小遊戲

在使用jy1時,我做了乙個塔防的h5遊戲,它做得有點像 保衛蘿蔔 當然它只是個原型,如下圖所示,它的演示位址是h5塔防遊戲 它的設計是canvas加上div混合的一種形式,這也就是jy2.0的起步,在乙個遊戲中,我們通常會劃分三層結構 第一層,view,是遊戲的核心部分,整個動畫的顯示 第二層,co...

h5移動端適配

原理 postcss function 視覺稿的1 10 在index.html中指定 font size為document寬度的1 10 iphonex 的解析度 2436 1125 pt 812 375 dpr 3 iphonexr的解析度 1792 828 pt 896 414 dpr 3 i...

移動端h5優化

1 減少js載入體積 很多庫能用cdn的盡量使用cdn,這樣打包出來的js體積會很小,載入很快。2 盡量採用比較輕量級的ui 元件庫 比如museui,mintui等 4 儘量減少網路請求數量 程式中的資料,有的能乙個介面返回的盡量乙個介面返回,不要弄太多的介面。5 盡量把大的js 檔案進行分割成小...