瀑布流(无限滚动)

瀑布流

瀑布流:又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。

瀑布流

我们要创建一个瀑布流插件,尽量的可以再多处使用。

开始布局

首先先创建好一个外层标签,用来包裹我们的图片元素

所有的瀑布流元素都会存放到这个div标签中 在添加图片时需要动态设置新图片的位置,由于图片高度不定,这里采用绝对定位方式布局。

插件创建

我们的想法是要创建一个插件,这里给插件起一个名字createWaterFall,这里想要传入参数,首先需要传入外层包裹元素areaDom,还需要传入图片组的路径urls,还有每张图片的宽度everyWidth

创建图片 dom 对象

这里我首先想到的是通过遍历传入的图片组路径urls来创建图片 dom

经过上边这样折腾,我们成功的将一批图片添加到页面中,不过位置有些不对,都跑到了左上角,接下来我们需要再写一个函数用来设置图片的位置。

在写这个函数时我又发现我需要得到图片要展示几列,于是我又写一个函数用来计算当前窗口可以展示几列图片。

计算图片展示列数

设置图片坐标

无限滚动

这里继续做了无限滚动的功能,通过不断的获取数据,将图片渲染到页面

获取图片

请求数据

完整的代码

最后更新于