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

GoldYves · 发布于 2017-01-11 · 字数5720 · 浏览 886 · 评论 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-11-05Android开源项目SlideMenu滑动菜单使用介绍
  • 2015-11-24From.js强大的JavaScript的LINQ引擎
  • 2016-05-17干货分享YY语音移动端UI设计规范高清下载
  • 2016-07-02jQuery Scroll Path按路径元素滚动动画插件
  • 2016-07-05angularAMD使用RequireJS和AngularJS快速构建WebApp
  • 2016-07-05刷流量的注意了使用流量宝可能会中毒!
  • 2016-07-06Java中面向对象的封装和继承以及多态
  • 2016-07-06如何将APK安装到android模拟器中
  • 发布评论

    为您推荐

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

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

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

    分享CSS常见中文字体Unicode编码表
    问说网 · 发布于 2016-02-27

    分享CSS常见中文字体Unicode编码表

    在 CSS 中设置字体名称,直接写中文是可以的。但是在文件编码(GB2312、UTF-8 等)不匹配时会产生乱码的错误。为此在 CSS 直接使用 Unicode…

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

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

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

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

    Webkit内核下的Mouseup后Mousemove自动触发问题及解决方法

    如题就以Chrome为代表举例说明遇到mousemove的问题,我们为body分别绑定onmousedown、onmousemove、onmouseup,并为触…

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

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

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

    整点有用的!做好扁平化设计的5个实战技巧

    扁平化是当前最流行的一种设计形式,作为设计师不一定要追赶潮流,但是一定要掌握这种技巧并懂得灵活运用。做好扁平化设计,并不是简单的去掉拟物设计的各种修饰效果,需要…

    • 整点有用的!做好扁平化设计的5个实战技巧
    • 整点有用的!做好扁平化设计的5个实战技巧
    • 整点有用的!做好扁平化设计的5个实战技巧
    • 整点有用的!做好扁平化设计的5个实战技巧
    StowePatricia · 发布于 2016-05-15 · 浏览 981 · 评论 0
    问说网 · 发布于 2016-06-24

    HTTP协议(HyperText Transfer Protocol)

    HTTP协议,英文名HyperText Transfer Protocol,中文名超文本传输协议,通过HTTP或者HTTPS协议请求的资源由统一资源标识符来标识…

    分享常用响应式Web UI开发框架
    问说网 · 发布于 2016-06-24

    分享常用响应式Web UI开发框架

    好的工具能够帮助我们快速的开发Web应用程序,有些东西不需要我们自己写,有现成的框架将使我们开发工作更顺利,这篇文章给大家分享常用响应式Web UI开发框架。

    问说网手机版

    躺着 站着 跪着轻松访问

    更多详情 关于作者

    GoldYves

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

    97 文章
    0 评论
    人气

    更多 热门话题

    APP界面

    关注 APP界面

    文章 41506 · 浏览 2781

    APP欣赏

    关注 APP欣赏

    文章 41427 · 浏览 2605

    APP手机界面

    关注 APP手机界面

    文章 41417 · 浏览 2684

    图片素材

    关注 图片素材

    文章 29463 · 浏览 2129

    高清图片

    关注 高清图片

    文章 26530 · 浏览 2339

    更多 推荐作者

    关注 秋天的孤寂

    文章 99 · 评论 0

    关注 惢碎葬爱

    文章 96 · 评论 0

    关注 倾听寂寞

    文章 83 · 评论 0

    关注 走了留下什么

    文章 110 · 评论 0

    关注 流浪的脚步

    文章 86 · 评论 0

    关注 籹孒不认输

    文章 94 · 评论 0

    
    顶部 反馈 评论 底部

    意见反馈

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

    您的反馈我们已收到!

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