waterfall

访客4年前黑客工具818

这是瀑布流结构插件, 类似于 Pinterest、花瓣、发现啦。


使用

html:

<div id="container"></div>

引入jquery,handlebars和waterfall(注:waterfall默认返回json花样数据并使用handlebars模板渲染json数据,你也可以在options中设置使用其它javascript模板如mustache剖析json数据或者直接返回html):

<script src="/path/jquery.min.js"></script>
<script src="/path/handlebars.js"></script>
<script src="/path/waterfall.min.js"></script>

template:

<script id="waterfall-tpl" type="text/x-handlebars-template">
    //template content
</script>

script:

$('#container').waterfall({
	itemCls: 'waterfall-item', 
	prefix: 'waterfall',
	fitWidth: true, 
	colWidth: 240, 
	gutterWidth: 10,
	gutterHeight: 10,
	align: 'center',
	minCol: 1, 
	maxCol: undefined, 
	maxPage: undefined, 
	bufferPixel: -50, 
	containerStyle: {
		position: 'relative'
	},
	resizable: true, 
	isFadeIn: false,
	isAnimated: false,
	animationOptions: { 
	},
	isAutoPrefill: true,
	checkImagesLoaded: true,
	path: undefined,
	dataType: 'json', 
	params: {}, 
	
	loadingMsg: '<div><img src="data:image/gif;base64" alt=""><br />Loading...</div>',
	
	state: { 
		isDuringAjax: false, 
		isProcessingData: false, 
		isResizing: false,
		curPage: 1 
	},

	// callbacks
	callbacks: {
		/*
		 * loadingStart
		 * @param {Object} loading $('#waterfall-loading')
		 */
		loadingStart: function($loading) {
			$loading.show();
			//console.log('loading', 'start');
		},
		
		/*
		 * loadingFinished
		 * @param {Object} loading $('#waterfall-loading')
		 * @param {Boolean} isBeyondMaxPage
		 */
		loadingFinished: function($loading, isBeyondMaxPage) {
			if ( !isBeyondMaxPage ) {
				$loading.fadeOut();
				//console.log('loading finished');
			} else {
				//console.log('loading isBeyondMaxPage');
				$loading.remove();
			}
		},
		
		/*
		 * loadingError
		 * @param {String} xhr , "end" "error"
		 */
		loadingError: function($message, xhr) {
			$message.html('Data load faild, please try again later.');
		},
		
		/*
		 * renderData
		 * @param {String} data
		 * @param {String} dataType , "json", "jsonp", "html"
		 */
		renderData: function (data, dataType) {
			var tpl,
				template;
				
			if ( dataType === 'json' ||  dataType === 'jsonp'  ) { // json or jsonp format
				tpl = $('#waterfall-tpl').html();
				template = Handlebars.compile(tpl);
				
				return template(data);
			} else { // html format
				return data;
			}
		}
	},
	
	debug: false
});

options

itemCls String 'waterfall-item' 瀑布流数据块class
prefix String 'waterfall' 瀑布流米素前辍
fitWidth Boolean true 是否自适应父米素宽度
colWidth Integer 240 瀑布流每列的宽度
gutterWidth Integer 10 数据块水平间距
gutterHeight Integer 10 数据块垂直间距
align String 'center' 数据块相对于容器对齐方式,'align', 'left', 'right'
minCol Integer 1 数据块最小列数
maxCol Integer undefined 数据块最多显示列数,默认undefined,更大列数无限制
maxPage Integer undefined 最多显示若干页数据,默认undefined,无限下拉
bufferPixel Integer -50 转动时, 窗口底部到瀑布流最小高度列的距离 > bufferPixel时, 自动加载新数据
containerStyle Object {position: 'relative'} 瀑布流默认样式
resizable Boolean true 缩放时是否触发数据重排
isFadeIn Boolean false 新插入数据是否使用fade动画
isAnimated Boolean false resize时数据是否显示动画
animationOptions Object {} resize动画效果,isAnimated为true时有用
isAutoPrefill Boolean true 当文档小于窗口可见区域,自动加载数据
checkImagesLoaded Boolean true 是否图片加载完成后更先排列数据块。若是直接后台输出图片尺寸,可设置为false,强烈建议从后台输出图片尺寸,设置为false
path Array, Function undefined 瀑布流数据分页url,可以是数组如["/popular/page/", "/"] => "/popular/page/1/",或者是凭据分页返回一个url方式如:function(page) { return '/populr/page/' + page; } => "/popular/page/1/"
dataType String 'json' 瀑布流返回数据花样,'json', 'jsonp', 'html'
params Object {} 瀑布流数据请求参数,{type: "popular", tags: "travel", format: "json"} => "type=popular&tags=travel&format=json"
loadingMsg Html 见下面代码 加载提醒进度条,html
callbacks Object 见下面代码 callback
debug Boolean false 开启debug


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

黄士翰(台湾歌手黄士翰照片)

  黄士翰(台湾歌手黄士翰照片)   2011年11月6日晚,台湾大学生黄士翰最后一次出现在自己租住的公寓附近,之后他便失踪了。但这起看似普通的失踪案却成为了近年来台湾最恐怖的案件之一。   黄士翰是...

LOL云顶之弈10.12贵族盾秘刺的玩法攻略 贵族盾秘刺阵容搭配

LOL云顶之弈10.12贵族盾秘刺的玩法攻略 贵族盾秘刺阵容搭配

【斗蟹攻略】LOL云顶之弈10.12贵族盾秘刺怎么玩?很多玩家都不知道,下面斗蟹网小编就为大家带来LOL云顶之弈10.12贵族盾秘刺的玩法攻略,一起和小编来看看吧! LOL云顶之弈10.12贵族盾秘...

手机nfc功能是什么(手机nfc功能大盘点,你用过

手机nfc功能是什么(手机nfc功能大盘点,你用过

在这个智能手机满天飞的现代科技社会里,手机的科技发展越来越迅速,足不出户便知天下事,而手机科技在进步的同时也在给我们带来了方便,出门也不用再像以前一样老是带着沉甸甸的钱包了,就比如下面我们即将要介绍的...

icloud能备份微信聊天记录(微信怎么自动备份到icloud)

很多时候大家的微信聊天记录里有不少需要保存的重要对话或者照片,但是常常会出现自己或者别人误删文件的状况,最安全的作法当然是将重要数据备份了。iCloud备份无疑是简单又方便的方法,但是iC...

女黑客vs女装大佬(女装大佬)

女黑客vs女装大佬(女装大佬)

本文导读目录: 1、女装大佬跟变态的区别 2、女生对于女装大佬是怎么看待的?会不会很反感? 3、我的世界202是谁 4、国家为什么不打压女装大佬?这么多男扮女装的变态,把整个社会弄得歪风邪...

黑客帝国的导演还执导哪部电影(黑客帝国系列导演还导演了哪一部电影)

黑客帝国的导演还执导哪部电影(黑客帝国系列导演还导演了哪一部电影)

本文导读目录: 1、黑客帝国系列导演还执行了那一部影片? 2、的导演沃什斯基还指导过哪些影片啊? 3、黑客帝国有几部,分别什么剧情 4、《黑客帝国》系列的三部分别叫什么 5、黑客帝国一...