Skip to content

HarryFight/waterfall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

waterfall

瀑布流插件实现

注:需要jquery支持。ie8+,chrome,FF等主流浏览器皆可

###使用方法: 提取waterfall/public/javascripts/waterfall.js作为插件。这里

waterfall/views/index.ejs为插件演示的html文件。这里

插件调用方式:

var waterfall = new Waterfall({
            colums:[200,200,200,200],
            marginRight:20,
            marginBottom:40,
            container:$("#waterfall-container"),
            loadUrl:"./getImg",
            maxLoad:100
        });

loadUrl若地址在不同域中,将采取jsonp的数据获取方式,url格式则为你的url+?callbak=?

插件缺省配置:

 var DEFAULT_OPT = {
        container:'#waterfall-container',
        colums:[200,200,200,200],
        marginRight:20,
        marginBottom:20,
        loadUrl:'./getImg',
        maxLoad:200
    };

###实现思路: 1、插件构造函数初始化

2、initColums初始化,计算每一列的位置,初始化列高

3、注册scroll事件,触发后loadImgs

4、使用ajax获取数据json

5、使用render渲染获取到的数据

6、getMin获取最优可添加item节点的列

7、渲染时,添加dom节点。首先遍历数据,生成html字符并且产生dom节点,通过比较每列高度,优先添加到最低高度的列上

8、细节优化(比如限制加载数量等)。

###小结: 源文件中waterfall对象的原型中有关于节点复用的部分,此部分尚未完善,在以后有想法后会慢慢补充完成。

About

瀑布流插件实现(需要jqeury支持)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published