瀑布编 html5,HTML5 使用原生JS创建瀑布流

由于是新手第一次写,所以废话不多说,直接奔主题,今天就来说说瀑布流的那些事,近来各大网站都喜欢用瀑布流来布局,瀑布流已经成为一种非常流行的页面布局了,尤其是一些购物网站,不论是移动端还是我们前端,用参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。例如:

0efb445f70b5

瀑布流样板

好了,在开始写代码之前,我们先来分析一下瀑布流布局的几大步骤:

1.让父盒子水平居中显示(#main)

** 1.1.设置盒子的width

** 1.2.设置盒子的margin(0 auto)

2.除了第一行的盒子不需要做定位,其余行的盒子都需要做定位

3.判断什么时候加载后续的其他盒子条件

4.当满足第三部的加载其他盒子的条件的时候,如果加载出新数据(造数据)

分析完了,那么下面直接上代码了:

一。先布局

先从css布局开始:父盒子中间有一个大的盒子,然后再套一个小盒子用来装img标签放图片,首先把大盒子多复制几个,最好复制15个以上,因为如果到时候图片出来显示不满第一屏,就没有右边滚动条,我当时就是图片放少了,没有滚动条,无法继续往下滚动来看效果的。

0efb445f70b5

1

这里我直接贴代码了

*{

margin:0;

padding:0;

}

img

{

/*去掉图片之间的缝隙*/

vertical-align:top;

}

#main

{

position:relative;

}

.box

{

/*background: red;*/

float:left;

padding:10px0 0 10px;

}

.pic

{

padding:10px;

border:1px solid#cccccc;

border-radius:8px;

box-shadow:0 0 10px#ddd;

background:#ffffff;

}

.picimg

{

width:160px;

}

二。JS部分

前面我们分析了瀑布流的布局:

1.让父盒子水平居中显示(#main)

** 1.1.设置盒子的width

** 1.2.设置盒子的margin(0 auto)

0efb445f70b5

父盒子居中显示

这里的waterFlow是对瀑布流布局封装的一个方法,具体实现步骤:

1.获取所有的盒子 2.求出任何一个盒子的宽度 3.求出当前屏幕宽度 4.求出每一行显示的盒子 5.让父盒子进行居中显示(在任何屏幕下都居中)

0efb445f70b5

瀑布流布局1

2.除了第一行的盒子不需要做定位,其余行的盒子都需要做定位

下面是遍历所有子盒子:

0efb445f70b5

1

0efb445f70b5

2

0efb445f70b5

3

3.判断什么时候加载后续的其他盒子条件

注意:这里我们用到的方法是依最后一个盒子高度出来一半的时候就加载后面的盒子!

0efb445f70b5

4

4.当满足第三部的加载其他盒子的条件的时候,如果加载出新数据(造数据)

注意:加载完新数据要再次调用waterFlow这个方法

0efb445f70b5

1

0efb445f70b5

2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值