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 相关文章推荐
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
js获取图片大小的函数代码
Sep 20 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
Jan 15 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
Feb 26 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
echarts学习笔记之箱线图的分析与绘制详解
Nov 22 Javascript
从setTimeout看js函数执行过程
Dec 19 Javascript
vue中的自定义分页插件组件的示例
Aug 18 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
PHP 危险函数全解析
2009/09/09 PHP
php 引用(&amp;)详解
2009/11/20 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php银联网页支付实现方法
2015/03/04 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
python求pi的方法
2014/10/08 Python
基于python 取余问题(%)详解
2020/06/03 Python
深入了解NumPy 高级索引
2020/07/24 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
管事部库房保管员岗位职责
2014/02/21 职场文书
《王二小》教学反思
2014/02/27 职场文书
教学评估实施方案
2014/03/16 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
大学计划书范文800字
2014/08/14 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
银行工作心得体会范文
2016/01/23 职场文书
年终工作总结范文
2019/06/20 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python