頁面佈局瀑布流的寫法(jQuery寫法)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>瀑布流佈局</title>
		<link rel="stylesheet" type="text/css" href="css/style.css"/>
		<script type="text/javascript" src="js/jquery-1.11.0.js" ></script>
		<!--<script type="text/javascript" src="js/script.js" ></script>-->
		<script type="text/javascript" src="js/JQ.js" ></script>
	</head>
	<body>
		<div id="main">
			<div class="box">
				<div class="pic">
					<img src="img/0.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/1.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/2.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/3.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/4.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/5.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/6.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/7.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/8.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/9.jpg"/>
				</div>
			</div><div class="box">
				<div class="pic">
					<img src="img/10.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/11.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/12.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/13.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/14.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/15.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/16.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/17.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/18.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/19.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/20.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/21.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/22.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/23.jpg"/>
				</div>
			</div><div class="box">
				<div class="pic">
					<img src="img/24.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/25.jpg"/>
				</div>
			</div><div class="box">
				<div class="pic">
					<img src="img/26.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/27.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/28.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/29.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/30.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/31.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/32.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/33.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/34.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/35.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/36.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/37.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/38.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/39.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/40.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/41.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/42.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/43.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/44.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/45.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/46.jpg"/>
				</div>
			</div>
			<div class="box">
				<div class="pic">
					<img src="img/47.jpg"/>
				</div>
			</div>
		</div>
	</body>
</html>

$(window).on('load',function(){
	waterfall();
	var dataInt = {"data":[{"src":"48.jpg"},{"src":"49.jpg"},{"src":"50.jpg"},{"src":"51.jpg"},{"src":"52.jpg"},{"src":"53.jpg"},{"src":"54.jpg"}]};
	$(window).on('scroll',function(){
		if(checkscrollside){
			$.each(dataInt.data,function(key,value){
				var oBox = $('<div>').addClass('box').appendTo($('#main'));
				var oPic = $('<div>').addClass('pic').appendTo($(oBox));
				$('<img>').attr('src','img/'+$(value).attr('src')).appendTo(oPic);				 
				
			})
			waterfall();
		}
	})
})
function waterfall(){
	var $boxs = $("#main>div");
	var w = $boxs.eq(0).outerWidth();
	var cols = Math.floor($(window).width()/w);
	$('#main').width(cols*w).css('margin','0 auto');

	var hArr = [];
	$boxs.each(function(index,value){
		var h = $boxs.eq(index).outerHeight();
		if(index<cols){
			hArr.push(h);
		}else{
			var minH = Math.min.apply(null,hArr);
			var minHIndex = $.inArray(minH,hArr);
			console.log(value);
			$(value).css({
				'position':'absolute',
				'top':minH+'px',
				'left':minHIndex*w+'px'
			})
			hArr[minHIndex]+=$boxs.eq(index).outerHeight();
		}
	})
	
}
function checkscrollside(){
	var $lastBox = $('#main>div').last();
	var lastBoxis = $lastBox.offset().top + Math.floor($lastBox.outerHeight()/2);
	var scrollTop = $(window).scrollTop();
	var documentH = $(window).height();
	return (lastBoxis<(scrollTop+documentH))?true:false;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章