收藏
评论

小程序中瀑布流布局太棘手?这款插件不仅貌美还「能屈能伸」

BrickLayout 晓瀑布流是知晓云为小程序开发者提供的第 3 款插件



BrickLayout 晓瀑布流为使用者提供开箱即用的瀑布流布局的一种可行性的方案,使用者仅需要按照对应所需的字段传入瀑布流组件,即可快速实现瀑布流布局。未来的瀑布流组件将会提供更多样式、适用更多场景的瀑布流模板,敬请期待!希望有更多场景推荐,希望有更多内容定制,欢迎留言或者告诉我们 👏

How BrickLayout 

由于小程序的诸多限制,导致在 web 上很多常规实现瀑布流的方式大多受到不同程度的影响,小程序中,实现瀑布流组件大抵有两种思路:采用纯粹的 css 来实现,或者通过数据处理配合 css 来实现瀑布流。

  • 采用纯粹的 css

    采用纯粹的 css 可以用 multi-column 利用 css3 属性实现多列布局、flex 布局、grid 布局等等。但是结合每个布局的特性,我们率先排除了 grid 布局,因为 grid 布局是实现相对有规则的网格布局,瀑布流布局中,grid 布局不适用。其次,我们排除了 multi-column 这个 css3 属性。在呈现效果上看,multi-column 的确很好地满足了我们对于瀑布流布局的样式布局要求,但是,multi-column 本质上是将文档流分为多列,也就是我们在杂志、报刊常见的多列布局,最后呈现效果(如下图)实际上不满足我们对有序数据的展现要求,因此而排除。

    最后我们的考虑范围只剩下 flex 布局,flex 布局在初始状态下的确很好地满足了我们对于数据的呈现效果,但是如果不加以数据干预,在默认非展开的情况下展开单个卡片,极端情况下会导致两列高度差过大,破坏了我们对于瀑布流的要求。

  • css 配合数据处理

    综上所述,我们采用了 flex 布局加之对于使用者所传入的数据进行处理,达成了我们想要的效果。前端展现方面,我们还是通过 flex 布局,达成实际的瀑布流呈现效果,对于数据变化亦或是卡片展开时,我们再对数据进行进一步的处理,只有在初始化的时候,或者卡片状态发生改变的时候,对两列高度进行计算,保证两列保持较为稳定的高度差,进而实现瀑布流布局。

why BrickLayout 

通过 BrickLayout 晓瀑布流使用者无须在关心实际的瀑布流布局实现,也无需关心前端的实际样式布局,更加专注于业务逻辑开发。未来的 BrickLayout 晓瀑布流将为使用者提供更加多样的模板,适用于不同场景之下的瀑布流布局。



插件使用案例





最后一次编辑于  2018-09-27
赞 4
收藏

5 个评论

  • 刘紫旌
    刘紫旌
    2018-12-05

    插眼

    2018-12-05
    赞同
    回复
  • 小哪吒
    小哪吒
    2018-11-20

    插眼关注

    2018-11-20
    赞同
    回复
  • 伦敦的红枫街
    伦敦的红枫街
    2018-10-25

    这个插件添加成功后去哪里看自己的插件

    2018-10-25
    赞同
    回复 1
    • Z 才怪
      Z 才怪
      2018-11-12

      小程序后台 - 设置 - 第三方服务

      2018-11-12
      回复
  • 敦煌网物流义乌仓~罗仁华
    敦煌网物流义乌仓~罗仁华
    2018-10-07

    非常棒

    2018-10-07
    赞同
    回复
  • 南山南吖41913
    南山南吖41913
    2018-09-29

    大神可以留个联系方式交流下么。我微信fengqi__3211

    2018-09-29
    赞同
    回复 1
    • Z 才怪
      Z 才怪
      2018-10-09

      你好,可以添加知晓妹微信(minsupport3)让她拉你进开发群。

      2018-10-09
      回复
登录 后发表内容