美文网首页
HTML5 使用原生JS创建瀑布流

HTML5 使用原生JS创建瀑布流

作者: Sunshine喵小喵 | 来源:发表于2017-06-11 20:47 被阅读142次

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

瀑布流样板

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

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

** 1.1.设置盒子的width

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

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

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

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


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

一。先布局

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

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)

父盒子居中显示

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

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

瀑布流布局1

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

下面是遍历所有子盒子:

1 2 3

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

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

4

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

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

1 2

github地址:github.com/guoshilin/-JavaScript

相关文章

  • HTML5 使用原生JS创建瀑布流

    由于是新手第一次写,所以废话不多说,直接奔主题,今天就来说说瀑布流的那些事,近来各大网站都喜欢用瀑布流来布局,瀑布...

  • Js实现瀑布流

    1.使用原生js实现瀑布流效果,demo地址(https://xukeler.github.io/waterfal...

  • 原生js实现瀑布流

    浏览网页的时候经常会遇到瀑布流布局的网站。也许有些读者不了解瀑布流。瀑布流,又称瀑布流式布局。是比较流行的一种网...

  • 原生js瀑布流代码

  • 原生js之瀑布流

    我们已经总结出了瀑布流式布局的两大特征: 内容框宽度固定,高度不固定。 内容框从左到右排列,一行排满后,其余内容框...

  • 实现拖拽

    原生js实现 HTML5原生实现:拖拽draggable属性、DataTranfers对象

  • 原生js实现瀑布流效果

    实现目标:实现瀑布流布局、当滚动条滚动到一定距离时加载图片瀑布流布局:结合窗口改变 定位第一行的盒子 第二行第一...

  • 原生js写的瀑布流

    这里只写了js和css方法,大家有兴趣可以动手写写

  • 原生Js实现瀑布流效果

    盗用的效果图 效果分析 瀑布流中图片的宽度都是固定的,但是高度需要设置为auto以使图片不变形,高度不固定。首先想...

  • 原生js的瀑布流写法

    以下是一种原生js的瀑布流写法,或许具体实现过程需要慢慢尝试,但是这种思想很重要。就是对每张图片执行一个循环,在每...

网友评论

      本文标题:HTML5 使用原生JS创建瀑布流

      本文链接:https://www.haomeiwen.com/subject/wwuxqxtx.html