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 相关文章推荐
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 Javascript
JavaScript实现自动跳转文本功能
May 25 Javascript
JS简单添加元素新节点的方法示例
Feb 10 Javascript
angular动态表单制作
Feb 23 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
微信jssdk逻辑在vue中的运用详解
Nov 14 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
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
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP fclose函数用法总结
2019/02/15 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
node使用request请求的方法
2019/12/20 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
用Python抢过年的火车票附源码
2015/12/07 Python
python变量不能以数字打头详解
2016/07/06 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python os.fork() 循环输出方法
2019/08/08 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
Python如何进行时间处理
2020/08/06 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
专科毕业生学习生活的自我评价
2013/10/26 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
网络优化专员求职信
2014/05/04 职场文书
安全责任书怎么写
2014/07/28 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
售房协议书范本
2015/08/11 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书