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 相关文章推荐
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
jQuery滚动条插件nanoscroller使用指南
Apr 21 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
Dec 20 Javascript
Vue+ElementUI table实现表格分页
Dec 14 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入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
webpack打包react项目的实现方法
2018/06/21 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
js实现简单点赞操作
2020/03/17 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
Python函数式编程
2017/07/20 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
工程力学专业自荐信范文
2014/03/17 职场文书
李开复演讲稿
2014/05/24 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
房产协议书范本2014
2014/09/30 职场文书
观看建国大业观后感
2015/06/01 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL