JQUERY瀑布流原理

http://www.sitejs.cn/code/down/jsdmview/waterfall/这里也有一个瀑布流效果,但效果不好。

JQUERY瀑布流原理

它的排版原理是先统计多少列,然后生成一排DIV。

JQUERY瀑布流原理

然后统计这排DIV的高度来分配图片的排版。开始加载感觉不出问题来。如果窗口变化几次排序就会乱了,打乱原有的排序,而且它是直接修改了节点结构,而且很卡甚至卡死。

JQUERY瀑布流原理

JQUERY瀑布流原理:我们应该保持原有节点不要更改,只修改图片的div坐标位置达到排序功能。

JQUERY瀑布流原理

JQUERY瀑布流原理:每次排版取前一排最低的位置接着排,窗口改变后先计算一下列数有没有发生变化,变化后才重排。每张图片的位置也比较一下有没有发生变化,变化后才重排,这点对窗口变化后非常有效。

JQUERY瀑布流原理

JQUERY瀑布流原理:如果图片加载过程中,窗口发生变化,我们是没有执行重排动作。

JQUERY瀑布流原理

因为重排的条件是必须全部图片已经加载并渲染完毕。所以当加载过程中发生窗口变化,先记录下来,等加载完后再处理。

JQUERY瀑布流原理

JQUERY瀑布流原理:还有如果图片地址出错将终止排序功能,为了解决这问题我们准备好一张错误提醒图片替换它。

JQUERY瀑布流原理

JQUERY瀑布流原理:每次排版取前一排最低的位置接着排,窗口改变后先计算一下列数有没有发生变化,变化后才重排。当下拉滚动条达到最后一个DIV的顶部时请求ajax生成新的图片插到底部执行继排功能。

JQUERY瀑布流原理

JQUERY瀑布流原理:每次排版取前一排最低的位置接着排,窗口改变后先计算一下列数有没有发生变化,变化后才重排。当下拉滚动条达到最后一个DIV的顶部时请求ajax生成新的图片插到底部执行继排功能。

JQUERY瀑布流原理

JQUERY瀑布流原理:每次排版取前一排最低的位置接着排,窗口改变后先计算一下列数有没有发生变化,变化后才重排。当下拉滚动条达到最后一个DIV的顶部时请求ajax生成新的图片插到底部执行继排功能。

JQUERY瀑布流原理

JQUERY瀑布流原理:每次排版取前一排最低的位置接着排,窗口改变后先计算一下列数有没有发生变化,变化后才重排。当下拉滚动条达到最后一个DIV的顶部时请求ajax生成新的图片插到底部执行继排功能。