比较容易理解的---原生js瀑布流

最近一直在恶补基础JS H5 CSS3的基础知识

关于这个瀑布流:

本来打算看着教程来做的。 不过 感觉理解起来有点复杂。

SO, 自己参考教程默写了一个。。

目前我所接触过的瀑布流布局分为2大类

主要区分在于 float布局 或者position布局

点击这里下载Demo

贴下源码:(可能有些BUG,没有具体测试)

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 <style>
 7 *{ margin:0; padding:0;}
 8 body{ background:#ddd; }
 9 ul{ width:1000px; margin:0 auto; position:relative;}
10 ul li{ width:300px; padding:5px;text-align:center; background:#FFF; border:1px solid #CCC; position:absolute; list-style-type:none; top:0;}
11 ul li img{ width:300px; height:auto;}
12
13 </style>
14
15 <script>
16     //@powerd by websir
17     window.onload = function(){
18         var oAdd = document.getElementById("add");
19         var oUl = document.getElementById("ul");
20         var aLi = oUl.getElementsByTagName("li")
21         var aPos = [{top:0,left:"0px"},{top:0,left:"315px"},{top:0,left:"630px"}]
22         var s = 0;
23         for(var i =0;i<aLi.length;i++)
24         {
25                 sortLi(aLi[i])
26
27         }
28
29         add.onclick = function(){
30             var newLi = document.createElement("li");
31             var img = new Image();
32             var span = document.createElement("span");
33             span.innerHTML =  Math.ceil(Math.random()*8)*11111;
34             img.src = Math.ceil(Math.random()*8)+".jpg";
35             newLi.appendChild(img);
36             newLi.appendChild(span)
37             img.onload = function(){
38                 oUl.appendChild(newLi);
39                 sortLi(newLi)
40             }
41
42         }
43
44         function sortLi(obj){
45             aPos.sort(function(a,b){return a.top-b.top});
46             obj.style.left = aPos[0].left;
47             obj.style.top = aPos[0].top+"px";
48             aPos[0].top += obj.offsetHeight+5;
49
50         }
51
52
53     }
54
55
56 </script>
57
58
59 </head>
60
61 <body>
62
63 <input id="add" value="添加" type="button" style="position:fixed; height:30px; width:100%; top:0; z-index:9;" />
64
65 <ul id="ul">
66 <li><img src="1.jpg" />22222</li>
67 <li><img src="2.jpg" />22222</li>
68 <li><img src="3.jpg" />22222</li>
69 <li><img src="4.jpg" />22222</li>
70 <li><img src="5.jpg" />22222</li>
71 <li><img src="6.jpg" />22222</li>
72 <li><img src="7.jpg" />22222</li>
73 <li><img src="8.jpg" />22222</li>
74
75
76 </ul>
77 </body>
78 </html>

时间: 2024-10-10 16:53:42

比较容易理解的---原生js瀑布流的相关文章

js 瀑布流

项目没上线,办公室里坐着学习技术,尼玛钱不够花啊,所以多学技术呗,仿写了个js 瀑布流,ide用的是idea14. 效果还可以. 1.项目效果图 index.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>js瀑布流</title> <link href="css/app.css

面向对象js瀑布流效果

index.html <!doctype html><html lang="en"> <head>  <!--网站编码格式,UTF-8 国际编码,GBK或 gb2312 中文编码-->  <meta charset="UTF-8">  <meta name="Keywords" content="">  <meta name="Descri

js瀑布流的代码

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Jquery瀑布流布局(每行代码都有详细注释)-作者:刘晓帆</title> <style type="text/css"> body, ul, li, h3 { margin: 0; padding: 0; list-style: none; font: bold

原声JS瀑布流加延迟加载

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>瀑布流</title> <style> *{ margin: 0px; padding:0px; } .box{ position: relative; top:0px; } ul li{ list-style-type: none; posit

JS瀑布流效果-布局

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JS瀑布流效果-布局</title> <style> * { margin: 0px; padding: 0px; } #container { position: relative; } .box { padding: 5px; float: left; } .box_img {

前端对base64编码的理解,原生js实现字符base64编码

目录 常见对base64的认知(不完全正确) 多问一个为什么,base64到底是个啥? 按照我们的思路实现一下 到这里基本就实现了,结果跟原生的方法打印的是一样的 下一次 @( 对于前端工程师来说base64图片编码到底是个什么玩意?) **** ---- 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有以下几点* base64是一种图片编码方式,用一长串超长的字符串表示图片 在加载的时候会直接以字符串的形式加载出来,减少了图片加载的http请求 正常加载服

js瀑布流(定位法)

1.首先,自己写好图片路径,引入jquery <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } ul{ position: relative; width: 860px; margin: 0

JS瀑布流效果

本篇内容实现类似百度图片的呈现功能,瀑布流+自动加载 index13.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>uvi</title> 6 <link rel="stylesheet" href="style2.css" type="text/css&q

web前端入门到实战:纯CSS瀑布流与JS瀑布流

瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式.即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置. 为什么使用瀑布流 瀑布流布局在我们现在的前端页面中经常会用的到,它可以有效的降低页面的复杂度,节省很多的空间,对于整个页面不需要太多的操作,只需要下拉就可以浏览用户需要看到的数据:并且,在当前这个APP至上的时代,瀑布流可以提供很好的用户体验,通过结合下拉刷新,上拉加载进行数据的懒加载等操作,对于用户的体验感来