jQuery Masonry瀑布流插件使用方法详解


Posted in Javascript onJanuary 18, 2017

用jQuery Masonry 插件创建瀑布流式的页面

jQuery Masonry瀑布流插件使用方法详解

我们可以使用 jQuery 的 Masonry 插件来实现这种页面形式,下面介绍一下方法。

1、分别下载 jQuery 与 Masonry ,然后把他们都加载到页面中使用。

加载代码:

<script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
<script src="http://jq22.qiniudn.com/masonry-docs.min.js"></script>

解释:很简单,就是把下载之后的脚本文件嵌入到你想使用瀑布流形式的页面中,注意文件的名称与路径,根据你自己的实际情况修改。

2、页面代码

<div id="masonry" class="container-fluid">
 <div class="box"><img src="http://jq22.com/images/1.jpg"></div>
 <div class="box"><img src="http://jq22.com/images/2.jpg"></div>
 <div class="box"><img src="http://jq22.com/images/3.jpg"></div>
 <div class="box"><img src="http://jq22.com/images/4.jpg"></div>
 <div class="box"><img src="http://jq22.com/images/5.jpg"></div>
 ...
</div>

解释:把每个小内容块放在一个拥有相关类的容器里,然后把所有的内容块放在一个大的容器里,这里我们把内容块图片放在一个拥有 .box 类的 <div> 标签里,然后把他们又使用带有 #masonry ID 的 <div> 里面,一会儿我们会用 #masonry ID 和 .box 类来触发使用瀑布流。

3,、样式代码

.container-fluid {
 padding: 20px;
 }
.box {
 margin-bottom: 20px;
 float: left;
 width: 220px;
 }
 .box img {
 max-width: 100%
}

解释:针对第二步的页面代码,我们需要添加一点样式,.box 类我们添加了浮动属性,还设置了他的宽度。

4、在页面中启用瀑布流形式的脚本代码

$(function() {
 var $container = $('#masonry');
 $container.imagesLoaded(function() {
  $container.masonry({
    itemSelector: '.box',
    gutter: 20,
    isAnimated: true,
   });
  });
});

解释:这里我们首先定位想使用瀑布流的大容器是什么,这里就是带有 #masonry ID 的 <div> 标签,在 var $container = $('#masonry'); 这行代码中定义。然后我们还要说明瀑布流里的每个内容块容器上共同的类是什么,这里就是带有 .box 类的 <div> 标签,在itemSelector : '.box', 这行代码中定义。

gutter: 20, 这行代码定义了内容块之间的距离是 20 像素,isAnimated: true, 这行代码可以打开动画选项,也就是当改变窗口宽度的时候,每行显示的内容块的数量会有变化,这个变化会使用一种动画效果。

(感谢网友阿富)提供不居中显示!

我的一个笨方法:

$(function() {
 var $objbox = $("#masonry");
 var gutter = 25;
 var centerFunc, $top0;
 $objbox.imagesLoaded(function() {
  $objbox.masonry({
   itemSelector: "#masonry > .box",
   gutter: gutter,
   isAnimated: true
  });
  centerFunc = function() {
   $top0 = $objbox.children("[style*='top: 0']");
   $objbox.css("left", ($objbox.width() - ($top0.width() * $top0.length + gutter * ($top0.length - 1))) / 2).parent().css("overflow", "hidden");
  };
  centerFunc();
 });
 var tur = true;
 $(window).resize(function() {
  if (tur) {
   setTimeout(function() {
    tur = true;
    centerFunc();
   },
   1000);
   tur = false;
  }
 });
});

源码下载:http://xiazai.3water.com/201701/yuanma/jquerymasonry(3water.com).rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
Ajax一统天下之Dojo整合篇
Mar 24 Javascript
jQuery each()小议
Mar 18 Javascript
Cookie 小记
Apr 01 Javascript
减少访问DOM的次数提升javascript性能
Feb 24 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
jQuery实现自动输入email、时间和域名的方法
Aug 24 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
Jun 07 Javascript
js实现消息滚动效果
Jan 18 #Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 #Javascript
微信小程序的动画效果详解
Jan 18 #Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 #Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 #Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 #Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 #Javascript
You might like
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
jquery 指南/入门基础
2007/11/30 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
详解Bootstrap插件
2016/04/25 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
利用Python查看目录中的文件示例详解
2017/08/28 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
客服服务心得体会
2013/12/30 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
期末个人总结范文
2015/02/13 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL