jquery.masonry瀑布流插件用法详解

GoldYves · 发布于 2017-01-11 · 字数5720 · 浏览 867 · 评论 0

Masonry是一个瀑布流布局jQuery插件,采用的原理就是利用position: absolute;相对定位,放置每个元素的位置,所以这个插件需要等到网页加载完成以后才能显示效果,本站的瀑布流效果也是采用的这个插件。几天就给大家分享一下关于Masonry瀑布流插件的一些使用方法。

一、Masonry介绍

类似的布局,似乎一夜之间出现在国内外大大小小的网站上,比如 Pinterest (貌似是最早使用这种布局的网站了),Mark之,蘑菇街,点点网,以及淘宝最新上线的“哇哦” 等等。通常,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。所以,我们给这样的布局起了一个形象的名字 — 瀑布流式布局。

masonry-demo

Masonry是一款很好用的jquery网页布局插件,它可以去掉不同高度div之间的空白,让你的网页看上去更加的整齐、漂亮!

二、Masonry使用方法

1、简单调用

首先要引入jquery.masonry.min.js文件和jquery插件,注意引用文件的顺序。

  1. <script type="text/javascript" src="jquery.min.js"></script>
  2. <script type="text/javascript" src="jquery.masonry.min.js"></script>

调用Masonry

  1. $(function(){
  2. $(‘#container’).masonry({
  3. itemSelector : ‘.item’
  4. });
  5. });

2、使用参数

参数是以json的方式传入到插件函数中,和以往的其他插件的调用方法并没有不同,不过他还有其他的方式去调用,比如:

  1. var container = document.querySelector(‘#container’);
  2. var msnry = new Masonry( container );
  3. container.appendChild( elem );
  4. msnry.appended( elem );
  5. msnry.layout();

更多调用方法请参考:http://masonry.desandro.com/methods.html

三、参数介绍

  • itemSelector:class选择器,默认’.item’
  • columnWidth:一列的宽度
  • isAnimated:使用jquery的布局变化,默认true
  • animationOptions:animate属性渐变效果(Object { queue: false, duration: 500 })
  • gutterWidth:列的间隙 Integer
  • isFitWidth:适应宽度Boolean
  • isResizableL:是否可调整大小 Boolean
  • isRTL:使用从右到左的布局 Boolean

四、常见的调用方法

调用masonry插件的方法格式是:$(‘#container’).masonry( ‘methodName’, [optionalParameters] ),例如:

  • .masonry( ‘appended’, $content, isAnimatedFromBottom )//触发添加到container的项目的布局
  • .masonry( ‘destroy’ )// 完全移除masonry的功能 返回到元素预初始化状态
  • .masonry( ‘layout’, $items, callback )// 指定项目的布局
  • .masonry( ‘option’, options ) //设置option
  • .masonry( ‘reloadItems’ ) //重新聚合所有项目以当前的顺序
  • .masonry( ‘reload’ ) //用于预先考虑或者插入项目 .masonry( ‘reloadItems’ )的简化版
  • .masonry( ‘remove’, $items ) //从masonry实例或dom中移除项目

1、关于获取图片高度

使用imagesLoaded.js插件防止获取不到图片的高度

  1. var $container = $(‘#container’);
  2. $container.imagesLoaded( function(){
  3. $container.masonry({
  4. itemSelector : ‘.item’
  5. });
  6. });

2、使用JS实现动画

  1. var $container = $(‘#container’);
  2. $container.imagesLoaded( function(){
  3. $container.masonry({
  4. itemSelector : ‘.item’,
  5. isAnimated : true
  6. });
  7. });

3、无限滚动加载

  1. $container.infinitescroll({
  2. navSelector : ‘#page-nav’,// selector for the paged navigation
  3. nextSelector : ‘#page-nav a’, // selector for the NEXT link (to page 2)
  4. itemSelector : ‘.item’, // selector for all items you’ll retrieve
  5. loading: {
  6. finishedMsg: ‘The END!’,
  7. img: ‘6RMhx.gif’
  8. }
  9. },
  10. // trigger Masonry as a callback
  11. function( newElements ) {
  12. // hide new items while they are loading
  13. var $newElems = $( newElements ).css({ opacity: 0 });
  14. // ensure that images load before adding to masonry layout
  15. $newElems.imagesLoaded(function(){
  16. // show elems now they’re ready
  17. $newElems.animate({ opacity: 1 });
  18. $container.masonry( ‘appended’, $newElems, true );
  19. });
  20. }
  21. );

4、通过a标签来制定加载内容

  1. <div id="container">
  2. <div class="item">1</div>
  3. <div class="item">2</div>
  4. <div class="item">3</div>
  5. </div>
  6. <nav id="page-nav">
  7. <a href="masonry06-2.html"></a>
  8. </nav>

五、如何获取

官方网站 | 在线示例 | 下载地址

本文系作者 GoldYves 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接

相关文章

  • 2015-10-14浅谈PHP中密码/加密的安全性
  • 2015-11-18分享Web开发中常用到的几个jQuery片段功能代码
  • 2017-01-19用JavaScript实现给出的盒子的序列是否可连为一矩型
  • 2016-03-05使用JS-Cookie的服务器端集成配置
  • 2016-12-02FlyJSONP轻量级的跨域AJAX请求插件
  • 2016-03-11SQLite数据库页面结构分析
  • 2016-04-19PNGDriver将任何文件信息转换为PNG图片
  • 2016-05-12jQuery Verbose Calendar简单大气全屏日历插件
  • 发布评论

    为您推荐

    Meteor项目开发Next实战教程
    问说网 · 发布于 2015-06-29

    Meteor项目开发Next实战教程

    学了一段时间Meteor之后,着手做一个APP,关于时间管理的,取名 Next。同时,把开发过程尽可能详细的记录下来,分享给有需要的同学。前提是你有一些Mete…

    问说网 · 发布于 2016-01-18

    Nodemailer基于Node.js简单易用的邮件发送模块

    Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可…

    用JavaScript实现给出的盒子的序列是否可连为一矩型
    AustenJuliet · 发布于 2017-01-19

    用JavaScript实现给出的盒子的序列是否可连为一矩型

    by cpglkg <script>var arr=[5,10,15];function rect(arr,width){ arr.sort(fun…

    问说网 · 发布于 2016-03-23

    多平台适配的代码设计

    一个成功的软件系统,往往需要根据需求在不同的系统平台上运行,为了解决系统在多个平台的移植带来的风险,业务架构往往会设计相应的平台适配层来隔离不同平台的差异,如何…

    AI教你创建折纸风格的矢量天鹅图

    最终效果: 第1步:描绘轮廓 你需要对你的设计有个总体的概念。利用照片和钢笔工具(P)描出轮廓。把填充颜色设为无,描边颜色设为黑色,1pt 粗细。这将作为你完成…

    • AI教你创建折纸风格的矢量天鹅图
    • AI教你创建折纸风格的矢量天鹅图
    • AI教你创建折纸风格的矢量天鹅图
    • AI教你创建折纸风格的矢量天鹅图
    张煦芊 · 发布于 2016-05-17 · 浏览 1020 · 评论 0
    马达 · 发布于 2016-05-22

    Photoshop线形图标简易教程

    Photoshop线形图标简易教程,线性图标虽然简单,但是却能给我们不一样的视觉体验,简单的线条勾勒出不同的含义。

    autoComplete.js移动端自动补全jQuery插件
    问说网 · 发布于 2016-06-27

    autoComplete.js移动端自动补全jQuery插件

    AutoComplete 是一个 jQuery Mobile 的插件,用于实现在 jQuery Mobile 中的搜索框中提供自动完成的功能。允许开发者添加到您…

    SweetTooltip基于jQuery和CSS3链接工具提示插件
    问说网 · 发布于 2016-07-01

    SweetTooltip基于jQuery和CSS3链接工具提示插件

    SweetTooltip 工具提示是一个基于jQuery和CSS3的工具提示,它不仅仅是一个风格,而是有七种风格。这种无背景图风格的工具提示制作使用线性梯度,阴…

    问说网手机版

    躺着 站着 跪着轻松访问

    更多详情 关于作者

    GoldYves

    这个人比较懒,什么都没有填写!

    97 文章
    0 评论
    人气

    更多 热门话题

    APP界面

    关注 APP界面

    文章 41506 · 浏览 1820

    APP欣赏

    关注 APP欣赏

    文章 41427 · 浏览 1751

    APP手机界面

    关注 APP手机界面

    文章 41417 · 浏览 1758

    图片素材

    关注 图片素材

    文章 29463 · 浏览 1257

    高清图片

    关注 高清图片

    文章 26530 · 浏览 1456

    更多 推荐作者

    关注 走了留下什么

    文章 110 · 评论 0

    关注 莪很迷茫

    文章 97 · 评论 0

    关注 流浪的脚步

    文章 86 · 评论 0

    关注 呼吸快窒息

    文章 104 · 评论 0

    关注 无感觉

    文章 91 · 评论 0

    关注 风筝断了线

    文章 89 · 评论 0

    顶部 反馈 评论 底部

    意见反馈

    感谢您对问说网的支持,提出您在使用过程中遇到的问题或宝贵建议,您的反馈对我们产品的完善有很大帮助。

    您的反馈我们已收到!

    感谢您提供的宝贵意见,我们会在1-2个工作日,通过您留下的联系方式将处理结果反馈给您!