• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WxMasonry-微信小程序瀑布流布局模式

WxMasonry

WxMasonry-微信小程序瀑布流布局模式

来源

微信小程序开发论坛 垂直微信小程序开发交流论坛

效果

WxMasonry-微信小程序实现瀑布流布局效果gif

github地址

WxMasonry-微信小程序实现瀑布流布局 https://github.com/icindy/WxMasonry

先提一个问题,以免你们不看到最后

在微信小程序的循环列表中,如何实现图片的等比例缩放,这件事上我有尝试,但是效果不佳,欢迎交流解决方案!!

实现方式

虽然实现方式很简单,但是我起初没有想到,也是绕了很远的路才想到。当你看到下面的解决方案的时候,请不要说我sb,因为我确实是没有想起来,太久没有学习前端知识,很多属性基本没有见过。

  • 使用css3的column-*属性
    • column-width
    • column-count
    • column-gap

如果熟悉css3的朋友可能一下子就想起来了,但是我并没有 我是绕了一大圈才想起来

  • 实现方式
.WxMasonryView{
  column-count:2;
  column-gap: 10px;
  width: 100%;
}
.WxMasonry{
  width: 95%;
  background: #fefefe;
  border: 2px solid #fcfcfc;
  box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
  margin: 5px 2px 2px 2px;
  padding: 1px;
  padding-bottom: 5px;
  transition: opacity .4s ease-in-out;
  display: inline-block;
}

column-count: 用于分割几列,这样你就可以通过直接设置几列,而不用担心屏幕宽度,当然这里有个坑哈,就是图片自适应!

column-gap: 间距不提。

至于几个属性的使用,建议自己w3c一下

心酸历程

实际上在着手做瀑布流的时候,我想到过纯css的的方法,但是我没有看到过column-*属性,因为已经很久没有再次学习css了。

  • 为什么会首先考虑纯css路线 原因很简单,微信小程序没有dom操作,如果按照常规的路线是无法实现的。纯float是不科学的,因为,你自己可以尝试,float达不到瀑布流的间隙插针的效果。

  • 常规的瀑布流实现方式 前端工程师看到瀑布流的时候,会想到很对js库,或者jquery库,这些库的实现原理大同小异,基本上都是使用了“绝对定位”进行计算布局。

  • 我的弯路 我毫不犹豫的想要按照常规的瀑布实现方式,但是没有办法实现那么多dom层级嵌套计算,所以想了很久没有想通,才跳回到纯css路线的,后面搜索发现了column-*属性,所以才浪费了很长时间。

总结

既然微信小程序没有Dom操作,可以通过css3的很多属性来解决一些问题。

来源

微信小程序开发论坛 垂直微信小程序开发交流论坛

More Repositories

1

wxParse

wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析
JavaScript
7,733
star
2

wxSearch

wxSearch-微信小程序优雅的搜索框
JavaScript
532
star
3

WxNotificationCenter

WxNotificationCenter - 微信小程序通知广播模式类,降低小程序之间的耦合度
JavaScript
423
star
4

wxflex

微信小程序的Flex布局demo-4种必备常用的Flex布局模式
JavaScript
224
star
5

fenda

微信小程序-7天写分答微信小程序
JavaScript
109
star
6

wxSortPickerView

wxSortPickerView-微信小程序首字母排序选择表
JavaScript
86
star
7

WxEmojiView

WxEmojiView
JavaScript
54
star
8

diaoyu

五分钟制作"钓鱼网站"
39
star
9

WxAutoImage

微信小程序中的图片自适应宽高的计算类
JavaScript
34
star
10

DebateTimeDown

辩论赛计时器
JavaScript
12
star
11

one-read

一览的chrome插件版,“one” for chrome extend
JavaScript
7
star
12

icindy.github.io

cindy's blog 开发版
HTML
6
star
13

wxCharts

wxCharts-微信小程序图表开源插件
JavaScript
5
star
14

wxScrollBugDemo

wxScrollBugDemo: 微信小程序中的scroll-view真机下遮挡问题
JavaScript
3
star
15

youdao_words

有道单词的批量导入单词本,文件中仅需要单词即可
HTML
2
star
16

wxDataDemo

wxDataDemo:微信小程序数据操作文章的例子(含:微信小城数据操作处理上:合理组装数据、微信小城数据操作处理下:深度操作数据)
JavaScript
2
star
17

jquery.countdown

jquery countdown plugin. jquery倒计时插件
JavaScript
2
star
18

node-webkit-demo

node-webkit for cindy blog demo
1
star