热门关键字:
jquery > jquery教程 > jquery教程 > 一个通俗易懂的jquery瀑布流插件源码

一个通俗易懂的jquery瀑布流插件源码

1964
作者:管理员
发布时间:2014/2/14 14:53:51
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=396



(function($){
	$.fn.extend({
		waterfall:function(value){
			value=$.extend({
				jsonUrl:"",
				dataType:""
			},value)
			
			var $this = $(this);
			
			//判断每个UL的最后一个LI,是否进入可视区域
			function see(objLiLast){
					//浏览器可视区域的高度
					var see = document.documentElement.clientHeight;	
					//滚动条滑动的距离
					var winScroll = $(this).scrollTop();
					//每个UL的最后一个LI,距离浏览器顶部的
					var lastLisee = objLiLast.offset().top
					return lastLisee < (see+winScroll)?true:false;		
			}
			//是否发出AJAX的“开关”;
			var onOff = true;
			
			$(window).scroll(function(){
				//拖动滚条时,是否发送AJAX的一个“开关”
				$this.children("ul").each(function(index, element) {
					
					//引用当前的UL
					var ulThis = this;
					//引用最后一个LI
					var lastLi = $("li:last",ulThis);
					//调用是否进入可视区域函数
					var isSee = see(lastLi);
					
					if(isSee && onOff){
						onOff = false;
						//发送AJAX请求,载入新的图片
						$.ajax({
							url:value.jsonUrl,
							dataType:value.dataType,
							success:function(data){
								//对返回JSON里面的list数据遍历
								$.each(data.list,function(keyList,ovalue){
								//对LIST里面的SRC数组遍历,取到图片路径
								$.each(ovalue,function(keySrc,avalue){
									$.each(avalue,function(keysrc1,value1){
										var imgLi = $("<li><a href=''><img src='" + value1 + "' alt='' /><p>11111</p></a></li>")
										$this.children("ul").eq(keysrc1).append(imgLi);
									})	
								})
								onOff = true;
								})
							}	
						})
					}
				});	
			})
		}	
	})	
})(jQuery)






如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:瀑布流 jquery插件 图片延迟加载 瀑布流布局
友荐云推荐