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 相关文章推荐
一个简单的Node.js异步操作管理器分享
Apr 29 Javascript
jQuery实现跨域
Feb 03 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
RequireJS用法简单示例
Aug 20 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
JavaScript实现前端倒计时效果
Feb 09 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHP echo()函数讲解
2019/02/15 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
Python可以用来做什么
2020/11/23 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
金士达面试非笔试
2012/03/14 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
班级年度安全计划书
2014/05/01 职场文书
付款委托书范本
2014/10/05 职场文书
2014年超市工作总结
2014/11/19 职场文书
教师学期末个人总结
2015/02/13 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书