JS案例之7——瀑布流布局(2)

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
 5 <title>waterfall布局</title>
 6 <meta name="author" content="rainna" />
 7 <meta name="keywords" content="rainna‘s js lib" />
 8 <meta name="description" content="waterfall布局" />
 9 <style>
10 *{margin:0;padding:0;}
11 li{list-style:none;}
12
13 .list li{float:left;width:200px;min-height:10px;margin:0 0 0 20px;}
14 .list .item{margin:0 0 10px;}
15 .list img{display:block;}
16 </style>
17 </head>
18
19 <body>
20 <div class="content" id="content">
21     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_101.jpg" />01</div>
22     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_002.jpg" />02</div>
23     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_003.jpg" />03</div>
24     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_004.jpg" />04</div>
25     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_005.jpg" />05</div>
26     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_006.jpg" />06</div>
27     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_007.jpg" />07</div>
28     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_008.jpg" />08</div>
29     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_009.jpg" />09</div>
30     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_010.jpg" />10</div>
31     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_011.jpg" />11</div>
32     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_012.jpg" />12</div>
33     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_013.jpg" />13</div>
34     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_014.jpg" />14</div>
35     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_015.jpg" />15</div>
36     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_016.jpg" />16</div>
37     <div class="item"><img src="http://cued.xunlei.com/demos/publ/img/P_016.jpg" />17</div>
38 </div>
39 <div class="list" id="list"></div>
40
41 <script>
42 var waterFall = {
43     content:document.getElementById(‘content‘),    //存放内容的容器
44     list:document.getElementById(‘list‘),   //将要展示的列表容器
45
46     setOptions:function(options){
47         options = options || {};
48         this.colNum = options.num || 3;   //显示的列数,默认显示3列
49     },
50
51     //构建列数
52     setColumn:function(){
53         var self = this;
54         var html = ‘‘;
55         for(var i=0,l=self.colNum;i<l;i++){
56             html += ‘<li></li>‘;
57         }
58         self.list.innerHTML = html;
59
60         self.column = self.list.getElementsByTagName(‘li‘);
61     },
62
63     //填充内容
64     setCont:function(cnt){
65         var self = this;
66         self.index = self.index%self.colNum || 0;
67         self.column[self.index].appendChild(cnt);
68         self.index ++;
69         if(!!self.content.children[0]){
70             self.setCont(self.content.children[0]);
71         }
72     },
73
74     init:function(options){
75         var self = this;
76         self.setOptions(options);
77         self.setColumn();
78         self.setCont(self.content.children[0]);
79     }
80 };
81
82 waterFall.init();
83 </script>
84 </body>
85 </html>
时间: 2024-10-07 04:50:26

JS案例之7——瀑布流布局(2)的相关文章

JS案例之6——瀑布流布局(1)

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <title>waterfall布局</title> 6 <meta name="author" content="rainna" /

JS原生方法实现瀑布流布局

html部分(图片都是本地,自己需要改动图片) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #d74200 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; col

jquery.masonry + jquery.infinitescroll 实现瀑布流布局

转载自:http://www.cnblogs.com/liubiaocai/archive/2013/04/26/3044503.html 最近瀑布流布局非常流行,国内大大小小的瀑布流布局的网站都很多了,比如美丽说.蘑菇街.花瓣等,关于瀑布流布局的资料打开可以百度自己看了,这里介绍两个jquey插件实现瀑布流布局和动态加载数据(分页加载). 1.jquery.masonry,目前布局流行的瀑布流插件有很多,http://www.csswang.com/resource/2261.html,这里有

纯js实现瀑布流布局及ajax动态新增数据

本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能. 缺点: 1. 程序不是响应式,不能实时调整页面宽度: 2. 程序中当新增ajax模拟数据图片后,是将整个页面的所有图片都重新定位一次. 3. 程序是等所有图片加载完成后再读取图片的尺寸,实际中肯定不能这样做. 4. 实际项目中,应该由后台程序给出图片尺寸值,在js代码中直接使用图片的width属性. 本程序思路: html结构: ? 1 2 3 4 5 6 7 8 9 10 1

JS瀑布流布局模式(1)

在实际的项目中,偶尔会用到一种布局——瀑布流布局.瀑布流布局的特点是,在多列布局时,可以保证内容区块在水平方向上不产生大的空隙,类似瀑布的效果.简单的说,在垂直列表里,内容区块是一个挨着一个的.当内容较多且不固定时,就依赖于html结构的顺序,非常受限制.这里给了一个简单的例子,只要传入列表的数量和宽度,就可以动态的将数据放到对应的列里. 原理 1.定义两个容器,一个是存放内容,一个是要展示的列表. 2.将每列的offsetHeight存入一个数组里,比较得出最小的那一列,然后把数据放到最小的列

我的第一篇博客 —— 用 js 和 css 简单实现瀑布流布局

一个拖延症晚期患者的自述: 注册了博客快一个月了,终于要迎来我的第一篇博客了哈哈哈!!! 刚注册的时候,满脑子要频繁更新,扩充自己的知识库,一到真正落实,就不得不为懒惰屈服,还好有了学习计划,以后应该会每周一更(不更当我没说).当然了,肯定是希望被更多人看到,帮助到大家,如果没人看的话就当作是自己的积累与记录吧! 还有,我目前工作是前端工程师,还是一名刚入行不久的菜鸟哈哈哈!!!现在主要目标是先把前端知识巩固好,再逐步往全栈领域发展(毕竟装13是我一生的职责). 所以,请各位大佬们多多指教,如果

js瀑布流布局

绝大多数的网页都是分为几列进行排版(几个div),传统布局就是将内容模块直接写在这几个div中.但是这种布局存在一个问题,那就是如果这个页面的信息非常的庞大,内容很多时这几列div会非常的长.而浏览器是逐行加载的,上述情况下会出现页面一直在加载第一列的内容,半天加载不完,而另外的几列什么都不显示. 用户是横向观看网页的,而上述情况下网页却是在逐列的纵向加载,这使得用户体验极差.为解决这种情况,就需要瀑布流布局.在几列中进行横向加载. 代码如下: function fnRand(min,max){

详解瀑布流布局的5种实现方式及object-fit

最近项目中需要处理与图片相关的布局,不得不说图片这玩意真想要得到完美的展示效果还真是要费些力气.因为图片的尺寸或者比例各不相同.所以想要不同尺寸的图片有好的显示效果,你就需要找到适合的方式. 而且图片往往是不可或缺元素.毕竟一图胜千言,有时候图片能给带来非常好的效果. 比如我们每天都会使用的表情包,它往往能够表达出我们无法用文字描述的信息,还比如我们经常在公众号里看到的漫画虽然短短几个字,但是却能够让我们看的不亦乐乎. 当然如果我们做图片网站的,那图片的处理就是绕不开的话题了.因对图片的处理经验

微信小程序 瀑布流布局

今天做小程序的时候,碰到一个比较常见的需求,就是要瀑布流布局,两列,交错分布,大概如下图 最终要实现的结果就是如左图所示. 不过在微信小程序里面,不能通过JavaScript来直接操作dome,所以一些常用的方法在这里都没有办法用了.这让笔者非常着急,因为项目比较赶,不能因为这种低级的布局问题拖慢了进度. 百度了半天,发现了css3的column这个属性,但是最后实现出来的方法就如右图所示,这不符合需求,需求是两列,从左到右进行排列的,大概就像小红书APP那种瀑布流布局 最后笔者终于找到一种非常