`

两种常见瀑布流(定位的瀑布流与浮动的瀑布流)

阅读更多
类似蘑菇街,美丽说网站的瀑布流
1.定位的瀑布流:
window.onload = function(){

	var aLi = document.getElementsByTagName('li');
	var aHeight = {L:[],C:[],R:[]};
	
	for(var i=0;i<aLi.length;i++){
		var iNow = i%3;
		
		switch(iNow){
			case 0:
				aLi[i].style.left = '5px';
				aHeight.L.push(aLi[i].offsetHeight);
				
				var step = Math.floor(i/3);
				
				if(!step){
					aLi[i].style.top = 0;
				}
				else{
					var sum = 0;
					for(var j=0;j<step;j++){
						sum += aHeight.L[j] + 5;
					}
					aLi[i].style.top = sum + 'px';
				}
				
			break;
			case 1:
				aLi[i].style.left = '240px';
				aHeight.C.push(aLi[i].offsetHeight);
				
				var step = Math.floor(i/3);
				
				if(!step){
					aLi[i].style.top = 0;
				}
				else{
					var sum = 0;
					for(var j=0;j<step;j++){
						sum += aHeight.C[j] + 5;
					}
					aLi[i].style.top = sum + 'px';
				}
			break;
			case 2:
				aLi[i].style.left = '475px';
				aHeight.R.push(aLi[i].offsetHeight);
				
				var step = Math.floor(i/3);
				
				if(!step){
					aLi[i].style.top = 0;
				}
				else{
					var sum = 0;
					for(var j=0;j<step;j++){
						sum += aHeight.R[j] + 5;
					}
					aLi[i].style.top = sum + 'px';
				}
			break;
		}
	}
	
};

2.浮动的瀑布流:
window.onload = function(){
	var aUl = document.getElementsByTagName('ul');
	var bBtn = true;
	
	window.onscroll = function(){
		
		var veiwHeight = document.documentElement.clientHeight;
		var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
	
		for(var i=0;i<aUl.length;i++){
			
			var aLi = aUl[i].getElementsByTagName('li');
				
			var lastLi = aLi[aLi.length-1];
			
			if(posTop(lastLi) < veiwHeight + scrollY && bBtn){
				
				bBtn = false;
				
				ajax('data.js',function(str){
					
					var json = eval('('+ str +')');
					
					if(json.code){
						bBtn = true;
					}
					
					for(var i=0;i<json.list.length;i++){
						var list = json.list[i];
						
						for(var j=0;j<list.src.length;j++){
							var oLi = document.createElement('li');
							oLi.innerHTML = '[img]'+ list.src[j] +'[/img]'+ list.title[j] +'
';
							aUl[i].appendChild(oLi);
						}
						
					}
					
				});
				
			}
			
		}
	};


	
	function posTop(obj){
		var top = 0;
		
		while(obj){
			top += obj.offsetTop;
			obj = obj.offsetParent;
		}
		
		return top;
	}
};


所需测试的json数据:
{
	code : 0,
	list : [
		{src:['img/1.jpg','img/2.jpg','img/3.jpg'],title:['222222222','222222222','222222222']},
		{src:['img/4.jpg','img/5.jpg','img/6.jpg'],title:['222222222','222222222','222222222']},
		{src:['img/7.jpg','img/8.jpg','img/9.jpg'],title:['222222222','222222222','222222222']}
	]
}
0
0
分享到:
评论

相关推荐

    javascript瀑布流实现的两种方式:固定列数的浮动布局与绝对定位自适应宽度 (1).docx

    本文将详细介绍两种实现瀑布流布局的方法:**固定列数的浮动布局**与**绝对定位自适应宽度布局**。 #### 一、固定列数的浮动布局 **定义:** 固定列数的浮动布局是通过预先设定好容器的列数,并将每个元素设置为...

    瀑布流式页面布局源码--(AJAX与静态两种实例)

    瀑布流式页面布局,也被称为Masonry布局,是一种在网页设计中常见的布局方式,尤其在图片展示类网站中广泛使用。这种布局模式模仿了瀑布流水的效果,每一块内容(通常是图片)自上而下排列,每一列的顶部对齐,但...

    jQuery淡入淡出瀑布流效果

    结合这两个概念,"jQuery淡入淡出瀑布流效果"是指使用jQuery实现的一种动态展示瀑布流布局的图片或内容,通过淡入淡出的动画效果增加视觉吸引力。 要创建这样的效果,首先需要对jQuery有深入的理解,包括选择器、...

    网站瀑布流特效

    瀑布流布局,也被称为Masonry布局,是一种在网页设计中广泛应用的展示元素的方式,尤其在图片展示、电商产品陈列等领域非常常见。这种布局方式模仿了瀑布下落的效果,即每个元素(如图片)自上而下依次排列,每列的...

    jQuery瀑布流布局带分页效果

    瀑布流布局是一种常见的网页设计方式,它模仿了真实世界中水流下时的不规则排列,使得页面元素在视觉上更具吸引力。在这个特定的项目中,我们结合了jQuery库来实现这种布局,并添加了分页功能,以提升用户体验,避免...

    瀑布流布局的两种实现方式:传统多列浮动和绝对定位布局

    瀑布流布局,又称Masonry布局,是一种常见的网页布局方式,尤其在展示图片或者商品列表时常用,其特点是每个元素(通常为图片)自上而下排列,并根据左侧或右侧元素的高度进行对齐,形成类似瀑布的效果。这种布局...

    js瀑布流特效 js瀑布流特效

    4. **CSS样式**:CSS在实现瀑布流布局中起到关键作用,需要设置元素的浮动、相对定位、绝对定位等属性,以及响应式设计的媒体查询。例如,使用`display: inline-block`或`float: left`可以使元素水平排列,而使用...

    jquery+js瀑布流

    瀑布流的实现通常有两种方法:一是绝对定位法,二是浮动定位法。绝对定位法利用JavaScript计算每个元素的位置,然后通过CSS的`position: absolute`属性设置元素的top和left值。而浮动定位法则利用CSS的`float`属性让...

    Jquery实现瀑布流特效

    瀑布流布局,也被称为Masonry布局,是一种网页布局方式,其中元素会根据浏览器窗口的宽度自动调整自身的位置,形成一种类似瀑布倾泻而下的视觉效果。这种布局在展示图片、商品或其他可变大小的内容时非常常见,因为...

    动态瀑布流网页布局jQuery代码

    动态瀑布流网页布局是一种流行的网页设计模式,它模仿了瀑布流水自然下落的效果,使得网页上的元素能够自适应地在不同尺寸的屏幕上排列,形成错落有致的展示效果。这种布局方式通常用于图片分享网站、电商产品展示或...

    jquery瀑布流

    jQuery瀑布流的实现主要依赖于两种技术:CSS布局(如Flexbox或Grid)和JavaScript的动态计算。在不支持这些现代布局技术的老版本浏览器中,瀑布流通常是通过计算元素的高度和宽度,以及适时调整元素的位置来实现的。...

    css+jQuery实现瀑布流

    下面将详细讲解如何使用这两种技术实现瀑布流布局。 首先,我们需要理解CSS的基础知识。CSS(Cascading Style Sheets)是用于描述HTML或XML(包括SVG、MathML等各种XML方言)文档样式的样式表语言。在瀑布流布局中...

    Javascript瀑布流

    4. **布局算法**:有两种常见的实现瀑布流的算法: - **列填充法**:先将元素按列分配,然后逐列填充,当某一列的高度达到最大时,新元素会添加到下一行的最短列。 - **绝对定位法**:为每个元素设置绝对定位,...

    javascript 实现瀑布流

    瀑布流布局,也被称为Masonry布局,是一种网页布局方式,常用于图片展示或者商品陈列,其特点是每一列的顶部对齐,而每列的高度则根据其中元素的大小自适应。在JavaScript中实现瀑布流,主要涉及到DOM操作、事件监听...

    简单的瀑布流网站代码

    瀑布流布局,也被称为Masonry布局,是一种常用于图片展示的网页设计模式,因其效果像瀑布一样逐级下落而得名。这种布局方式最早由Pinterest引领流行,后来被蘑菇街、美丽说等电商网站广泛采用,使得用户在浏览图片时...

    jQuery瀑布流

    jQuery瀑布流是一种网页布局方式,它模仿了真实的瀑布流水效果,即内容元素在页面上以多列排列,每一列自上而下填充,当一列填满后,内容会自动流到下一列,形成一种动态的视觉效果。这种布局方式在图片展示、商品...

    jquery图片自滚动瀑布流效果.zip

    JavaScript在瀑布流布局中的作用主要体现在两个方面:一是计算和调整元素的位置以保持瀑布流效果;二是处理图片的动态加载,这通常包括预加载和按需加载策略,以提高页面性能和用户体验。对于图片自滚动,可能是通过...

    FA.zip_t网格瀑布流布局代码

    【FA.zip_t网格瀑布流布局代码】是一种网页设计技术,主要应用...这两个文件的内容可能与Bootstrap3.3.7的网格瀑布流布局不直接相关,但如果你在开发过程中需要添加倒计时功能或处理计算逻辑,它们或许能提供一些帮助。

    Metro瀑布流布局效果.zip

    CSS3引入了Flexbox(弹性盒模型)和Grid(网格布局)这两种强大的布局模式,它们都可以用来创建瀑布流效果。尤其是Flexbox,可以轻松处理元素的对齐和自适应布局,但它的灵活性可能不足以处理复杂的多列布局。而Grid...

Global site tag (gtag.js) - Google Analytics