最近在做我们产品的官网,需要开发一个照片墙展示界面。到网上搜了一下模版,决定用瀑布流的方式展示照片。于是去搜索瀑布流的demo,有很多很好的例子,其中堆糖的瀑布流感觉比较完美,但是太复杂了。继续搜索,最后找到jquery.infinitescroll.js+jquery.masonry.js的例子,觉得简单明了,自己拿来改了一下就可以运行了。
jquery.masonry.js主要是实现瀑布流的布局。查找masonry文档就能知道是级联网格布局的插件包,masonry的使用其实很简单。看一下代码
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.masonry.js"></script>
<title>monsry使用实例</title>
<style>
.item{width:25%;border:1px solid red;}
.item .w2{width:30%;border:1px solid green;}
</style>
<script type="text/javascript">
function item_masonry(){
$('#container').load(function(){
$('#container').masonry({
//附加选择器,指定那些元素包裹的元素会重新排列
itemSelector: '.item',
//一列网格的宽度,默认是第一个元素浮动外的宽度
columnWidth:100,
//列的间隙宽度 单位px
gutterWidth:15,
//禁用测量每个浮动元素的宽度 如果浮动元素具有相同的宽度则设为true 默认是false
sigleMode:flase,
// 绑定一个 Masonry 访问 用来 窗口 resize时布局平滑流动.
// 默认:true
resizeable:true,
//布局重排动画 默认false
animate:true,
// 一对动画选项,具体参数可以参考jquery .animate()中的options选项
animationOptions: {},
// 附加选择器元素,用来尾部追加内容。
// 在集成infinitescroll插件的情况下使用。
appendedContent: $('.new_content'),
// 默认情况下,Masonry 将使用以前Masonry使用过的参数选项,所以你只需要输入一次选项
// 默认:true
saveOptions: true
});
});
$('#container').masonry({
itemSelector: '.item',
columnWidth:100,
gutterWidth:15
});
}
$(function(){
item_masonry();
});
</script>
</head>
<body>
<div id="container">
<div class="item">哈哈</div>
<div class="item w2">呵呵</div>
<div class="item">嘻嘻</div>
</div>
</body>
</html>
</html>