类似蘑菇街,美丽说网站的瀑布流
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']}
]
}
分享到:
相关推荐
本文将详细介绍两种实现瀑布流布局的方法:**固定列数的浮动布局**与**绝对定位自适应宽度布局**。 #### 一、固定列数的浮动布局 **定义:** 固定列数的浮动布局是通过预先设定好容器的列数,并将每个元素设置为...
瀑布流式页面布局,也被称为Masonry布局,是一种在网页设计中常见的布局方式,尤其在图片展示类网站中广泛使用。这种布局模式模仿了瀑布流水的效果,每一块内容(通常是图片)自上而下排列,每一列的顶部对齐,但...
结合这两个概念,"jQuery淡入淡出瀑布流效果"是指使用jQuery实现的一种动态展示瀑布流布局的图片或内容,通过淡入淡出的动画效果增加视觉吸引力。 要创建这样的效果,首先需要对jQuery有深入的理解,包括选择器、...
瀑布流布局,也被称为Masonry布局,是一种在网页设计中广泛应用的展示元素的方式,尤其在图片展示、电商产品陈列等领域非常常见。这种布局方式模仿了瀑布下落的效果,即每个元素(如图片)自上而下依次排列,每列的...
瀑布流布局是一种常见的网页设计方式,它模仿了真实世界中水流下时的不规则排列,使得页面元素在视觉上更具吸引力。在这个特定的项目中,我们结合了jQuery库来实现这种布局,并添加了分页功能,以提升用户体验,避免...
瀑布流布局,又称Masonry布局,是一种常见的网页布局方式,尤其在展示图片或者商品列表时常用,其特点是每个元素(通常为图片)自上而下排列,并根据左侧或右侧元素的高度进行对齐,形成类似瀑布的效果。这种布局...
4. **CSS样式**:CSS在实现瀑布流布局中起到关键作用,需要设置元素的浮动、相对定位、绝对定位等属性,以及响应式设计的媒体查询。例如,使用`display: inline-block`或`float: left`可以使元素水平排列,而使用...
瀑布流的实现通常有两种方法:一是绝对定位法,二是浮动定位法。绝对定位法利用JavaScript计算每个元素的位置,然后通过CSS的`position: absolute`属性设置元素的top和left值。而浮动定位法则利用CSS的`float`属性让...
瀑布流布局,也被称为Masonry布局,是一种网页布局方式,其中元素会根据浏览器窗口的宽度自动调整自身的位置,形成一种类似瀑布倾泻而下的视觉效果。这种布局在展示图片、商品或其他可变大小的内容时非常常见,因为...
动态瀑布流网页布局是一种流行的网页设计模式,它模仿了瀑布流水自然下落的效果,使得网页上的元素能够自适应地在不同尺寸的屏幕上排列,形成错落有致的展示效果。这种布局方式通常用于图片分享网站、电商产品展示或...
jQuery瀑布流的实现主要依赖于两种技术:CSS布局(如Flexbox或Grid)和JavaScript的动态计算。在不支持这些现代布局技术的老版本浏览器中,瀑布流通常是通过计算元素的高度和宽度,以及适时调整元素的位置来实现的。...
下面将详细讲解如何使用这两种技术实现瀑布流布局。 首先,我们需要理解CSS的基础知识。CSS(Cascading Style Sheets)是用于描述HTML或XML(包括SVG、MathML等各种XML方言)文档样式的样式表语言。在瀑布流布局中...
4. **布局算法**:有两种常见的实现瀑布流的算法: - **列填充法**:先将元素按列分配,然后逐列填充,当某一列的高度达到最大时,新元素会添加到下一行的最短列。 - **绝对定位法**:为每个元素设置绝对定位,...
瀑布流布局,也被称为Masonry布局,是一种网页布局方式,常用于图片展示或者商品陈列,其特点是每一列的顶部对齐,而每列的高度则根据其中元素的大小自适应。在JavaScript中实现瀑布流,主要涉及到DOM操作、事件监听...
瀑布流布局,也被称为Masonry布局,是一种常用于图片展示的网页设计模式,因其效果像瀑布一样逐级下落而得名。这种布局方式最早由Pinterest引领流行,后来被蘑菇街、美丽说等电商网站广泛采用,使得用户在浏览图片时...
jQuery瀑布流是一种网页布局方式,它模仿了真实的瀑布流水效果,即内容元素在页面上以多列排列,每一列自上而下填充,当一列填满后,内容会自动流到下一列,形成一种动态的视觉效果。这种布局方式在图片展示、商品...
JavaScript在瀑布流布局中的作用主要体现在两个方面:一是计算和调整元素的位置以保持瀑布流效果;二是处理图片的动态加载,这通常包括预加载和按需加载策略,以提高页面性能和用户体验。对于图片自滚动,可能是通过...
【FA.zip_t网格瀑布流布局代码】是一种网页设计技术,主要应用...这两个文件的内容可能与Bootstrap3.3.7的网格瀑布流布局不直接相关,但如果你在开发过程中需要添加倒计时功能或处理计算逻辑,它们或许能提供一些帮助。
CSS3引入了Flexbox(弹性盒模型)和Grid(网格布局)这两种强大的布局模式,它们都可以用来创建瀑布流效果。尤其是Flexbox,可以轻松处理元素的对齐和自适应布局,但它的灵活性可能不足以处理复杂的多列布局。而Grid...