扩展版瀑布流

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>瀑布流-扩展版02</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#list {
list-style: none;
position: relative;
margin: 0 auto;
}
#list li {
position: absolute;
width: 200px;
font-size: 50px;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
-ms-transition: all 0.5s;
-o-transition: all 0.5s;
transition: all 0.5s;
background: url(img/10.jpg);
}
</style>
</head>
<body>
<ul id="list"></ul>
</body>
<script type="text/javascript">

function flowFn() {
var list = document.getElementById("list");
var width = 200;
var padding = 10;
var heightArr = [];

//随机函数
function randFn(min, max) {
return parseInt(Math.random() * (max - min)) + min;
}

//bol值表示是否新创建元素,是则是初始化,否则只是窗体大小改变重新布局
function creatFlow(bol) {
var windowBody = document.documentElement.clientWidth;
var lis = list.getElementsByTagName("li");
var cols = parseInt(windowBody / (width + padding));
var topArr = [];

list.style.width = cols * (width + padding) + "px";
//通过列数和每个li的宽度,算出ul宽度,为了使瀑布流居中

for (var i = 0; i < cols; i++) {
topArr[i] = 0;
}

//创建li并设定样式
function createLi(index) {
var li = lis[index] || document.createElement("li"); //如果li已经存在,就用现有的,如果没有,就创建
var height = heightArr[index] || randFn(100, 300);
//如果存储高度的数组已经存在,就用现有的,如果没有,就用随机函数获取高度

li.innerHTML = index;
li.style.height = height + "px";

var minTop = topArr[0];
var minIndex = 0;
for (var i = 0; i < topArr.length; i++) {
if (minTop > topArr[i]) {
minTop = topArr[i];
minIndex = i;
}
}

li.style.top = topArr[minIndex] + "px";
li.style.left = minIndex * (width + padding) + "px";
topArr[minIndex] += (height + padding);

//新创建
if (bol) {
heightArr.push(height);
list.appendChild(li);
}
}

//把创建li的循环提出来
for (var i = 1; i < 21; i++) {
createLi(i);
}
}

//页面初始化,创建瀑布流并布局
window.onload = function(){
creatFlow(true);
}

//窗口大小改变,改变瀑布流重新布局
window.onresize = function() {
creatFlow(false);
}
}
flowFn();

</script>
</html>

时间: 2024-10-08 09:04:09

扩展版瀑布流的相关文章

利用jQuery来扩展一个瀑布流插件

  简单了解jQuery.fn.extend() jQuery.fn.extend()函数用于为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法). (截图来自jQuery文档) 为了更清晰的理解我将需求写成了注释 扩展代码如下 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 1 (function($){ 2 3 $.fn.WaterFall = function () { 4 5 /* 6 * 瀑布流插件 7 * 容器的宽度固定 8

jquery版瀑布流

原文:jquery版瀑布流 一个月前用jquery实现了瀑布流效果,看着当时的代码有点难过……今天抽时间稍微修改了一下.额,现在看起来不是那么难受了,就来和大家分享一下.废话不多说,开始正题~ 一.演示效果 二.html代码 <div class="header">header</div> <div class="box clearfix"> <div class="waterFall"> <

飞流直下的精彩 -- 淘宝UWP中瀑布流列表的实现

在淘宝UWP中,搜索结果列表是用户了解宝贝的重要一环,其中的图片效果对吸引用户点击搜索结果,查看宝贝详情有比较大的影响.为此手机淘宝特意在搜索结果列表上采用了2种表现方式:一种就是普通的列表模式,而另一种则是突出宝贝图片的瀑布流模式. 如果用户搜索某些关键字,如女装类的情况下,淘宝的搜索结果会自动切换到瀑布流模式,让宝贝的美图更加冲击用户的视觉. 但是UWP默认的列表控件并没有这种效果,listview控件中虽然子元素可以不一样大小,但是只能有1列,gridview控件虽然有多列,但每个子元素都

8款实用的Jquery瀑布流插件

1.网友Null分享Jquery响应式瀑布流布局插件 首先非常感谢网友Null的无私分享,此作品是一款响应式瀑布流布局Jquery插件,网友Null增加了一个屏幕自适应和响应式,响应式就是支持智能手机浏览,效果非常棒,遗憾的是不支持IE9以下版本,所以网友们在演示的时候请使用谷歌.火狐等浏览器... 分享JquerySchool网站里面的8款Jquery瀑布流插件 2.网友sole分享23行Jquery代码实现定位瀑布流布局特效 首先非常感谢网友sole的无私分享,此Jquery特效是我从互联网

瀑布流代码,简洁版 带分页

接上一篇   瀑布流代码,简洁版 的功能之上添加分页的功能 Index.cshtml @using PagedList.Mvc @model PagedList.StaticPagedList<int> @{ ViewBag.Title = "瀑布流"; Layout = "~/Views/Shared/_Layout.cshtml"; } @section header{ <script src="~/Scripts/jquery-ui

利用LruCache加载网络图片实现图片瀑布流效果(基础版)

MainActivity如下: package cc.patience3; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 采用瀑布流的形式加载大量网络图片 * 详细分析参见WaterfallScrollView * * 参考资料: * 1 http://blog.csdn.net/guolin_blog/article/details/10470797 * 2 http://blog.csdn.net

瀑布流代码,简洁版

最近想实现数据的延迟加载,网上找一下有很的列子,看了Masonry的例子启发,自己写了一个很简单的例子(仅限于每列的宽固定高一致,并不算是真正意义的瀑布流). View页面. @{ ViewBag.Title = "瀑布流"; Layout = "~/Views/Shared/_Layout.cshtml"; } @section header{ <script src="~/Scripts/jquery-ui-1.8.24.min.js"

瀑布流特效

瀑布流特效 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早采用此布局的网站是Pinterest,逐渐在国内流行开来.国内大多数清新站基本为这类风格. 瀑布流特点: 1.琳琅满目:整版以图片为主,大小不一的图片按照一定的规律排列.2.唯美:图片的风格以唯美的图片为主.3.操作简单:在浏览网站的时候只需要轻轻滑动一下鼠标滚轮,一切的美妙的图片精彩便可呈现在你面前. 瀑布流布局实现方式: 1

妙味课堂实战功能开发视频教程 3D翻转焦点图/瀑布流/拖拽购物车/模块化开发等实战教程

<HTML5梦工厂 - 码农俱乐部视频>├<第八期码农俱乐部-技术之夜-3D翻转焦点图>│  ├1-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├2-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├3-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  └lesson8.zip├<第二期码农俱乐部-技术之夜-瀑布流效果>│  ├1-码农俱乐部技术之夜-瀑布流效果1(原理介绍)_.mkv│  ├2-码农俱乐部技术之夜-瀑布流效果2(布局和数据的获取)_.mkv│