<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>瀑布流</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="js/app.js"></script>
</head> <body>
<div id ="container">
<div class="box">
<div class="box_img" >
<img src=".idea\img\2.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/3.jpg">
</div>
</div> <div class="box">
<div class=" box_img">
<img src=".idea/img/9b7f759c4c0d6a4187b2902f33386e27.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/857ae43b321476e94252fad082292cce.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/14934c7fd0a6ea3a2272c8dd05ebe0a2.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/20140821101515614.jpg">
</div>
</div> <div class="box">
<div class="box_img">
<img src=".idea/img/20140821101516903.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/资源1.jpg">
</div> </div>
<div class="box">
<div class="box_img">
<img src=".idea/img/738b4710b912c8fc5d56e46cf8039245d78821ed.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/48540923dd54564ee758fb98b7de9c82d1584f55.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/u=4136129481,4024516763&fm=21&gp=0.jpg">
</div>
</div>
<div class="box">
<div class="box_img" >
<img src=".idea\img\2.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/20140821101516903.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/资源1.jpg">
</div> </div>
<div class="box">
<div class="box_img">
<img src=".idea/img/738b4710b912c8fc5d56e46cf8039245d78821ed.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/48540923dd54564ee758fb98b7de9c82d1584f55.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src=".idea/img/u=4136129481,4024516763&fm=21&gp=0.jpg">
</div>
</div>
<div class="box">
<div class="box_img" >
<img src=".idea\img\2.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/3.jpg">
</div>
</div> <div class="box">
<div class=" box_img">
<img src=".idea/img/9b7f759c4c0d6a4187b2902f33386e27.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/857ae43b321476e94252fad082292cce.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/14934c7fd0a6ea3a2272c8dd05ebe0a2.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/20140821101515614.jpg">
</div>
</div> <div class="box">
<div class="box_img">
<img src=".idea/img/20140821101516903.jpg">
</div>
</div>
<div class="box">
<div class="box_img" >
<img src=".idea/img/857ae43b321476e94252fad082292cce.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/14934c7fd0a6ea3a2272c8dd05ebe0a2.jpg">
</div>
</div> <div class="box">
<div class="box_img" >
<img src=".idea/img/20140821101515614.jpg">
</div>
</div> <div class="box">
<div class="box_img">
<img src=".idea/img/20140821101516903.jpg">
</div>
</div> </div>
</body>
</html>

js代码:

/**
* Created by Administrator on 2015/5/23.
*/
window.onload=function() {
imgLocation("container", "box");
var imgDate={"date":[{"src":"2.jpg"},{"src":"3.jpg"},{"src":"资源1.jpg"},{"src":"9b7f759c4c0d6a4187b2902f33386e27.jpg"},{"src":"738b4710b912c8fc5d56e46cf8039245d78821ed.jpg"}]}
window.onscroll = function () {
if( checkFlag()) {
var cparent = document.getElementById("container");
for (var i = 0; i < imgDate.date.length; i++) {
var ccontent = document.createElement("div");
ccontent.className = "box";
cparent.appendChild(ccontent);
var boximg = document.createElement("div");
boximg.className = "box_img";
ccontent.appendChild(boximg);
var img = document.createElement("img");
img.src = ".idea/img/" + imgDate.date[i].src;
boximg.appendChild(img); }imgLocation("container", "box");
}
}
} function checkFlag() {
var cparent = document.getElementById("container");
var ccontainer = getChildElemtent(cparent, "box");
var lastContentHeight = ccontainer[ccontainer.length - 1].offsetTop;
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var pageHeight = document.documentElement.clientHeight || document.body.clientHeight;
if (lastContentHeight<scrollTop+pageHeight){
return true;
} } function imgLocation(parent,content) {
var cparent = document.getElementById(parent);
var ccontent = getChildElemtent(cparent, content);
var imgWidth = ccontent[0].offsetWidth;
var num = Math.floor(document.documentElement.clientWidth / imgWidth);
cparent.style.cssText = "Width:" + imgWidth * num + "px;margin:0 auto"; var boxHeightArr = [];
for (var i = 0; i < ccontent.length; i++) {
if (i < num) {
boxHeightArr[i] = ccontent[i].offsetHeight;
} else {
var minheight = Math.min.apply(null, boxHeightArr);
var minIndex=getminheightLocation(boxHeightArr,minheight); ccontent[i].style.position = "absolute";
ccontent[i].style.top=minheight + "px";
ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";
boxHeightArr[minIndex]=boxHeightArr[minIndex]+ccontent[i].offsetHeight;
}
}
}
function getminheightLocation(boxHeightArr,minheight){
for( var i in boxHeightArr)if (boxHeightArr[i] == minheight) {
return i;
}
}
function getChildElemtent(parent,content){
var contentArr=[]
var allcontent=parent.getElementsByTagName("*");
for(var i = 0;i<allcontent.length;i++){
if(allcontent[i].className==content) {
contentArr.push(allcontent[i]);
}
}
return contentArr
}

css代码:

*{
margin: 0px;
padding: 0px;
}
#container{
position: relative;
}
.box{
padding: 5px;
float:left ;
}
.box_img{
padding: 5px;
border: 1px;
solid-color: #cccccc;
box-shadow: #cccccc 0 0 5px;
border-radius: 5px; }
.box_img img{
height:auto;
width:150px
}

还是学生,写的可能都比较小白。

不过还是希望有个地方可以记录我的学习路径啦

以后写出的东西就放这里啦。

html代码:

原生js 实现的瀑布流的更多相关文章

  1. jquery/原生js/css3 实现瀑布流以及下拉底部加载

    思路: style: <style type="text/css"> body,html{ margin:; padding:; } #container{ posit ...

  2. 原生 JS 实现一个瀑布流插件

    更好的阅读体验,点击 原文地址 瀑布流布局中的图片有一个核心特点 -- 等宽不定等高,瀑布流布局在国内网网站都有一定规模的使用,比如pinterest.花瓣网等等.那么接下来就基于这个特点开始瀑布流探 ...

  3. JS实现动态瀑布流及放大切换图片效果(js案例)

    整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击 ...

  4. js 实现图片瀑布流效果,可更改配置参数 带完整版解析代码[waterFall.js]

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS实现图片瀑布流效果 页面需求 1 ...

  5. 用原生JavaScript实现图片瀑布流的浏览效果

    学习JS,活跃思维,灵活运用的一个较为典型的学习案例.同一个瀑布流的效果但实现方式却很多,利用递归.冒泡等等手法都可以达到你想要的目的.这次要说的就是利用类似递归来实现此效果的原创方案.此方案个人认为 ...

  6. 原生js实现图片瀑布流布局,注释超详细

    完整代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  7. 原生js实现的瀑布流布局

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 分享:纯 css 瀑布流 和 js 瀑布流

    分享一次纯 css 瀑布流  和 js 瀑布流 纯 css 写瀑布流 1.multi-columns 方式: 通过 Multi-columns 相关的属性 column-count.column-ga ...

  9. 关于瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)

    瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式.即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置. 为什么使用瀑 ...

随机推荐

  1. [iOS UI进阶 - 6.0] CALayer

    A.基本知识 1.需要掌握的 CALayer的基本属性 CALayer和UIView的关系 position和anchorPoint的作用   2.概念 在iOS中,你能看得见摸得着的东西基本上都是U ...

  2. HDU 5266 pog loves szh III (LCA)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5266 题目就是让你求LCA,模版题.注意dfs会栈溢出,所以要扩栈,或者用bfs写. #pragma ...

  3. 第十五章 String讲解

    package ch15; import java.util.Scanner; public class Test { public static void main(String[] args) { ...

  4. CoreSeek有符号整型

    数据库status字段的值有:-1,0,1 设置过滤字段,发现sql_attr_uint不支持负数,后改用sql_attr_bigint sql_attr_bigint = status sql_at ...

  5. 剑指OFFER之调整数组顺序使奇数位于偶数前面找(九度OJ1516)

    题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 输入: 每个输 ...

  6. 使用TopShelf轻松开发Window服务

    关于TopShelf 描述: Topshelf is a framework for hosting services written using the .NET framework. The cr ...

  7. 在.NET中实现彩色光标/动画光标和自定义光标[转]

    下面是完整的例子,可以通过命令行编译即可看到效果. Test.cs using System; using System.Drawing; using System.Windows.Forms; us ...

  8. 怎样配置Tomcat环境变量

    JDK环境变量配置:      假设你的安装JDK在C盘里,如:C:\Program Files\Java\jdk1.6.0_05,那么就在系统变量里(当然也能够在用户变量里)点新建:      变量 ...

  9. Mesos 配置项解析

    Mesos 的 配置项 能够通过启动时候传递參数或者配置文件夹下文件的方式给出(推荐方式,一目了然). 分为三种类型:通用项(master 和 slave 都支持).仅仅有 master 支持的,以及 ...

  10. Android 4.1源码编译找不到资源文件解决办法

    我们在Android framework中修改资源文件时,在Android 4.0之前,都是直接在sourcecode/frameworks/base/core/res/res下面添加对应的资源文件, ...