视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于JavaScript实现瀑布流布局(二)_javascript技巧
2020-11-27 21:49:28 责编:小采
文档
本文实例讲解了JavaScript实现瀑布流布局详细代码,分享给大家供大家参考,具体内容如下

1.建立Html模版

想法是先用一个div container承载所有内容,然后div box用来放置图片,最后div box_border来当图片框,代码如下




 
 瀑布流


 
 

 
 
 
 
 
 

2.通过css简单设置样式

主要设置水平放置,相框颜色,边界之类的

/*
边界不留空,背景黑灰
*/
body{
 margin: 0px;
 background: darkgray;
}
/*
总布局设置为相对布局
*/
.container{
 position: relative;
}
/*
设置box属性
*/
.box{
 padding: 5px;
 float: left;
}
/*设置图片边框阴影和圆角
*/
.box_border{
 padding: 5px;
 border: 1px solid #cccccc;
 box-shadow: 0px 0px 5px #ccc;
 border-radius: 5px;
}
/*设置图片格式*/
.box_border img{
 width: 150px;
 height: auto;
}



3.JS控制每一行所摆放的图片个数

上面的css布局之后,浏览器窗口大小改变,里面的图片数量也会改变,现在要用JS固定住每一行的图片数量,对于不同尺寸的屏幕都能做到很好的效果



4.JS实现静态瀑布流

先实现静态的布局,也就是浏览器下拉不会自动刷新出新的图片.
实现排列算法很简单

  • 1.把第一排图片的高度全部存到一个数组
  • 2.计算出第一排中的图片的最小高度和对应位置
  • 3.把第一排之后的第一个图片放到该位置上
  • 4.重新设置该位置的高度为两个图片相加
  • 5.循环2剩余全部图片
  • 代码:

    
    
    

    5.js实现动态加载

    动态加载也就是滚动条永远滑不到底部,要解决动态加载我们需要考虑两个问题:
    1).什么时候加载?
    滑动距离+浏览器高度>最后一张图片距离顶部的距离
    2).怎样加载?
    通过创建新的节点,把创建的节点添加进去即可
    最终代码:

    
    
    

    希望本文所述对大家学习javascript程序设计有所帮助。

    下载本文
    显示全文
    专题