韩姿一,王金峰,彭禹,侯林叶,张雪玉
(防灾科技学院信息工程学院,河北 三河 065201)
随着电商行业的蓬勃发展,购物APP排版的整齐与否在竞争中起到了重要作用。为更好地满足购物者的需求,以清晰简洁为特点的瀑布流布局(waterfall layout)流行了起来。
最早采用此布局的网站是PINTEREST。瀑布流布局方式给网站用户带来了全新的体验,所以许多大中型网站都使用了这一布局技术,诸如新浪微博微相册、百度图趣等,许多个人网站也加入了瀑布流布局的阵营[3]。瀑布流受用户欢迎的原因还有矩阵特点,可以节省网络资源,浓缩更大的图片量,因此,在移动端布局设计中占据重要的表达方式[4]。瀑布流布局效果如图1所示。
在瀑布流布局中,所有图片的宽相等,高度不等。每个图片都是通过计算定位的方式来确定其在瀑布流布局中的位置。
所有的数据块都包含在一个div中,然后为每一个小数据块分别设置一个div,此div的功能主要是为了定义每个数据块的距离。因为每个数据块都有各自的样式,所以再用一个div来包含标签。代码如下:
因为每个div和pin都是需要相对于div#main做绝对定位的,所以div#main需要做相对定位。鉴于要获得每个div的高度,所以对div和pin进行填充时尽量选择padding而不是margin,并且需要加入float属性让每个div在一行中显示出来,最后对每个div、box、img进行宽度和高度设置,至此页面布局及CSS样式完成。CSS代码如下:
基础排版效果如图2所示。
图2 基础排版效果图
瀑布流的原理是挑选每一行中最矮的图片,在此图片的位置下面进行新图片的摆放。第一步;先判断出一行能够摆放图片的数量,方法是获取到整个屏幕的宽度和每张图片的宽度,用两数做除取整计算出一行能够摆放的图片数量。第二步:通过数组遍历获得第一行中每张图片的高度并存入数组,通过jQuery和inArray方法返回数组中高度最小的图片的索引值。从第二行开始,不断把新的图片定位到第一行高度最小的图片下面,定位方式就是用CSS样式设置。主要代码如下:
在完成了以上代码之后查看效果图可以发现最新的图片定位在最矮的图片下面,数据块定位效果如图3所示。
图3 数据块定位效果图
瀑布流的特点是在移动滚动条的时候加载图片,原理是获取到最后一张图片距离屏幕顶端的高度、窗口的高度和滚动的高度。如果当前最后一张图片距离顶端的高度小于当前窗口的高度加上滚动条滚动的距离时开始加载图片。主要代码如下:
完成了动态加载图片代码后,当往下拖动滚动条时,理论上可以实现在同一个页面中无限加载新数据块。实现效果如图4所示。
图4 jQuery实现瀑布流效果
瀑布流对于图片的展现是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内获得更多的信息量,而瀑布流里懒加载模式又避免了用户鼠标点击的翻页操作[1]。目前,Pinterest模式已成为发展最为迅速的社会化电子商务模式之一,探讨Pinterest模式下社会化电子商务网站用户购买意愿的影响因素,不仅有利于提高网站对用户的吸引力,而且对网站保持竞争力和稳定发展具有一定的现实意义[2]。