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 相关文章推荐
执行iframe中的javascript方法
Oct 07 Javascript
JS如何判断移动端访问设备并解析对应CSS
Nov 27 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
js实现滑动滑块验证登录
Jul 24 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
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
Python中endswith()函数的基本使用
2015/04/07 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
Pytorch之Variable的用法
2019/12/31 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
施工员岗位职责
2014/03/16 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
2015年少先队活动总结
2015/03/25 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
python函数指定默认值的实例讲解
2021/03/29 Python
压缩Redis里的字符串大对象操作
2021/06/23 Redis
5行Python代码实现一键批量扣图
2021/06/29 Python
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python