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

GoldYves · 发布于 2017-01-11 · 字数5720 · 浏览 868 · 评论 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 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接

相关文章

  • 2016-07-15十分钟搞清字符集和字符编码
  • 2015-09-24使用jQuery和CSS自定义我们联系表单
  • 2017-01-19用JavaScript实现给出的盒子的序列是否可连为一矩型
  • 2016-12-02FlyJSONP轻量级的跨域AJAX请求插件
  • 2016-04-07图灵智能机器人API接入文档
  • 2016-04-16jQuery.eraser图片蒙板遮罩擦除插件
  • 2016-04-17推荐三款Photoshop常用的辅助插件
  • 2016-12-02Response JS创建高性能的支持移动设备的网站
  • 发布评论

    为您推荐

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

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

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

    问说网 · 发布于 2016-12-02

    FlyJSONP轻量级的跨域AJAX请求插件

    FlyJSONP是一个JavaScript库,用于实现跨域GET和POST请求服务,支持JSONP,并取得一个JSON格式的数据响应,这个Library具有易于…

    使用CSS3制作细线边框的3种不同的写法
    问说网 · 发布于 2016-03-29

    使用CSS3制作细线边框的3种不同的写法

    最近在做一个H5手机页面项目遇到了一个小小的问题,就是边框描边1像素的问题,最终问题还是解决,现在分享使用CSS3制作细线边框的3种不同的写法,希望您有所帮助。

    问说网 · 发布于 2016-12-02

    Response JS创建高性能的支持移动设备的网站

    Response JS 是一个轻量级的 jQuery 插件,用来创建高性能的支持移动设备的网站。它提供了一套语法用来根据不同的设备环境动态替换HTML代码。例如…

    夏七夕 · 发布于 2016-05-24

    音乐播放器UI设计教程附PSD源文件

    音乐播放器界面设计讲解,主要讲解音乐播放器的配色和层次,多试参数,没有人和一步到位,多花时间去调试不同的参数。

    分享20款优秀的Web移动开发框架
    问说网 · 发布于 2016-06-25

    分享20款优秀的Web移动开发框架

    移动开发框架可以帮助开发者快速开发出满足需求的Web移动应用和网站,本文收集了20款针对开发者的移动开发框架,供开发者借鉴使用。

    分享50组使用纯CSS代码绘制的图标

    使用纯CSS代码绘制图标,可能你觉得太费事了,兼容也不容乐观,但是有人真的这么干了,而且效果还很好,也许在你的项目中,你可以参考使用下,下面是收集来自Codep…

    • 分享50组使用纯CSS代码绘制的图标
    • 分享50组使用纯CSS代码绘制的图标
    • 分享50组使用纯CSS代码绘制的图标
    • 分享50组使用纯CSS代码绘制的图标
    问说网 · 发布于 2016-06-25 · 浏览 1282 · 评论 0
    详细讲解JAVA中的IO流
    Vincent · 发布于 2016-07-06

    详细讲解JAVA中的IO流

    包 java.io   文件路径 1. java.io.File是文件和目录路径名的抽象表示形式 2. 抽象路径名中的第一个名称是目录名,抽象路径名中…

    问说网手机版

    躺着 站着 跪着轻松访问

    更多详情 关于作者

    GoldYves

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

    97 文章
    0 评论
    人气

    更多 热门话题

    APP界面

    关注 APP界面

    文章 41506 · 浏览 1574

    APP欣赏

    关注 APP欣赏

    文章 41427 · 浏览 1506

    APP手机界面

    关注 APP手机界面

    文章 41417 · 浏览 1522

    图片素材

    关注 图片素材

    文章 29463 · 浏览 1026

    高清图片

    关注 高清图片

    文章 26530 · 浏览 1217

    更多 推荐作者

    关注 秋天的孤寂

    文章 99 · 评论 0

    关注 怎麽继续

    文章 90 · 评论 2

    关注 倾听寂寞

    文章 83 · 评论 0

    关注 溫柔的溫柔

    文章 91 · 评论 0

    关注 走了留下什么

    文章 110 · 评论 0

    关注 莪很迷茫

    文章 97 · 评论 0

    顶部 反馈 评论 底部

    意见反馈

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

    您的反馈我们已收到!

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