比较容易理解的---原生js瀑布流
最近一直在恶补基础JS H5 CSS3的基础知识
关于这个瀑布流:
本来打算看着教程来做的。 不过 感觉理解起来有点复杂。
SO, 自己参考教程默写了一个。。
目前我所接触过的瀑布流布局分为2大类
主要区分在于 float布局 或者position布局
贴下源码:(可能有些BUG,没有具体测试)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{ margin:0; padding:0;}
body{ background:#ddd; }
ul{ width:1000px; margin:0 auto; position:relative;}
ul li{ width:300px; padding:5px;text-align:center; background:#FFF; border:1px solid #CCC; position:absolute; list-style-type:none; top:0;}
ul li img{ width:300px; height:auto;} </style> <script>
//@powerd by websir
window.onload = function(){
var oAdd = document.getElementById("add");
var oUl = document.getElementById("ul");
var aLi = oUl.getElementsByTagName("li")
var aPos = [{top:0,left:"0px"},{top:0,left:"315px"},{top:0,left:"630px"}]
var s = 0;
for(var i =0;i<aLi.length;i++)
{
sortLi(aLi[i]) } add.onclick = function(){
var newLi = document.createElement("li");
var img = new Image();
var span = document.createElement("span");
span.innerHTML = Math.ceil(Math.random()*8)*11111;
img.src = Math.ceil(Math.random()*8)+".jpg";
newLi.appendChild(img);
newLi.appendChild(span)
img.onload = function(){
oUl.appendChild(newLi);
sortLi(newLi)
} } function sortLi(obj){
aPos.sort(function(a,b){return a.top-b.top});
obj.style.left = aPos[0].left;
obj.style.top = aPos[0].top+"px";
aPos[0].top += obj.offsetHeight+5; } } </script> </head> <body> <input id="add" value="添加" type="button" style="position:fixed; height:30px; width:100%; top:0; z-index:9;" /> <ul id="ul">
<li><img src="1.jpg" />22222</li>
<li><img src="2.jpg" />22222</li>
<li><img src="3.jpg" />22222</li>
<li><img src="4.jpg" />22222</li>
<li><img src="5.jpg" />22222</li>
<li><img src="6.jpg" />22222</li>
<li><img src="7.jpg" />22222</li>
<li><img src="8.jpg" />22222</li> </ul>
</body>
</html>
比较容易理解的---原生js瀑布流的更多相关文章
- 原生js瀑布流
HTML部分代码............................... CSS部分代码........................... 原生js部分代码................. ...
- js瀑布流 原理实现揭秘 javascript 原生实现
web,js瀑布流揭秘 瀑布流再很久之前流行,可能如我一样入行晚的 ,可能就没有机会去使用.但是这个技术终究是个挺炫酷的东西,花了一个上午来研究,用原生js实现了一个,下面会附上源码,供大家解读. 说 ...
- 面向对象js瀑布流效果
index.html <!doctype html><html lang="en"> <head> <!--网站编码格式,UTF-8 国 ...
- 分享:纯 css 瀑布流 和 js 瀑布流
分享一次纯 css 瀑布流 和 js 瀑布流 纯 css 写瀑布流 1.multi-columns 方式: 通过 Multi-columns 相关的属性 column-count.column-ga ...
- 【js】【图片瀑布流】js瀑布流显示图片20180315
js实现把图片用瀑布流显示,只需要“jquery-1.11.2.min.js”. js: //瀑布流显示图片 var WaterfallImg = { option: { maxWidth: 850, ...
- JS 瀑布流效果
JS瀑布流效果 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- 前端对base64编码的理解,原生js实现字符base64编码
目录 常见对base64的认知(不完全正确) 多问一个为什么,base64到底是个啥? 按照我们的思路实现一下 到这里基本就实现了,结果跟原生的方法打印的是一样的 下一次 @( 对于前端工程师来说ba ...
- js瀑布流(定位法)
1.首先,自己写好图片路径,引入jquery <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- JS瀑布流效果
本篇内容实现类似百度图片的呈现功能,瀑布流+自动加载 index13.html <!DOCTYPE html> <html> <head> <meta cha ...
随机推荐
- 自动化测试培训:设计和实现分布式QTP调用
自动化测试培训:设计和实现分布式QTP调用 自动化测试的过程中一个很核心的需求就是执行效率,单位时间里要执行更多的测试用例.为了完成该要求,我们开发一个调度工具,让qtp运行在不同的机器上,通过C ...
- ORA-00918: 未明确定义列
ORA-00918: 未明确定义列 出现问题原因及解决办法. --正常写,结果带上表名的字段在处理后表头名称相同,在进行下一次嵌套时就会出现问题 select au.userxm,au01.user ...
- Javascript删除数组中指定值的元素
Array.prototype.remove = function(index){ if(isNaN(index) || index > this.length){return false;} ...
- ecshop3.6商品如何按照销量排序
ecshop订单状态对应值:order_status有5中状态,并且当客户确认收货后,order_status的数值不一定是1也有可能是5.order_status = 0表示订单未确认order_s ...
- MySQL关于check约束无效的解决办法
首先看下面这段MySQL的操作,我新建了一个含有a和b的表,其中a用check约束必须大于0,然而我插入了一条(-2,1,1)的数据,其中a=-2,也是成功插入的. 所以MySQL只是check,但是 ...
- Java程序初始化的顺序
Java程序初始化的顺序 java程序初始化工作可以在许多不同的代码块中来完成(例如:静态代码块.构造函数等),他们执行的顺序如下: 父类静态变量 父类静态代码块 子类静态变量 子类静态代码块 父类非 ...
- mysql数据库开启日志
旧版 #开启慢查询 slow_query_log # (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.) long_query_time = 2 log-slow-queries=D: ...
- vue2.0仿今日头条开源项目
vue-toutiao 这是用 vue.js 2.0 高仿 今日头条 的移动端项目,结合了原生app的部分功能以及网页版. 前言 本人是 今日头条 的重度用户,在学习vue.js过程中,在GitHub ...
- AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码
AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . AspNetCore - MVC实战系列(一)之Sqlserver表映射实体模型 . AspNetCore-MVC实战系列(二)之 ...
- 使用Java语言开发微信公众平台(六)
在上一节课程中,我们来学习了微信公众平台最基础的一个接口--access_token,并且能够从微信公众平台中取到access_token. 那么,在本节课程中,我们要以上节课获取到的access_t ...