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

GoldYves · 发布于 2017-01-11 · 字数5720 · 浏览 902 · 评论 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-12-14Infinity.js是Web上平滑滚动的UITableView
  • 2017-01-19用JavaScript实现给出的盒子的序列是否可连为一矩型
  • 2016-03-07戏说实现简易而强大的游戏AI有限状态机FSM
  • 2016-12-02FlyJSONP轻量级的跨域AJAX请求插件
  • 2016-04-28jQuery++扩展jQuery库功能的开源插件
  • 2016-05-13Adobe Brackets免费开源跨平台前端开发编辑器
  • 2016-05-15爆款来袭!Austera WEB模板PSD免费下载
  • 2016-05-17AI教程!教你绘制扁平化风格的卡通人物肖像(四人组合篇)
  • 发布评论

    为您推荐

    使用Modernizr探测HTML5/CSS3新特性
    问说网 · 发布于 2015-03-31

    使用Modernizr探测HTML5/CSS3新特性

    HTML5, CSS3以及相关技术(例如canvas和web sockets)带来了非常有用的特性,可以让我们的web程序提升一个新的level。这些新技术允许…

    十分钟搞清字符集和字符编码
    问说网 · 发布于 2016-07-15

    十分钟搞清字符集和字符编码

    在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。

    Moobile基于MooTools移动应用开发框架

    Moobile 是一个基于 MooTools 的移动应用框架。能够兼容主流的Web浏览器,Moobile是基于MooTools的移动Web应用框架,是一个新项目…

    • Moobile基于MooTools移动应用开发框架
    • Moobile基于MooTools移动应用开发框架
    • Moobile基于MooTools移动应用开发框架
    • Moobile基于MooTools移动应用开发框架
    问说网 · 发布于 2016-01-14 · 浏览 1279 · 评论 0
    用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具有易于…

    SQLite数据库页面结构分析

    数据库中第一个页是Btree页。第一个页面的前100个字节是一个对数据库文件进行描述的“文件头”,通过对应关系可以获得“包括数据库的版本、格式的版本、页大小、编…

    • SQLite数据库页面结构分析
    • SQLite数据库页面结构分析
    • SQLite数据库页面结构分析
    • SQLite数据库页面结构分析
    问说网 · 发布于 2016-03-11 · 浏览 1333 · 评论 0
    分层架构设计原则
    问说网 · 发布于 2016-03-13

    分层架构设计原则

    通常一个软件系统都包含不同部分互相交互耦合,我们希望设计能够将系统划分为有意义的各个部件,各个部件能够独立的开发、演进、部署。这时整体性的设计已经无法满足这些挑…

    谈谈那些年PHP中非常牛的验证码
    问说网 · 发布于 2016-03-30

    谈谈那些年PHP中非常牛的验证码

    验证码已经是现在网站中非常基础的知识点了,验证码的存在可以防止恶意破解密码、刷票、灌水,可以有效的防止暴力破解特定用户,现在就来了解谈谈那些年PHP中非常牛的验…

    问说网手机版

    躺着 站着 跪着轻松访问

    更多详情 关于作者

    GoldYves

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

    97 文章
    0 评论
    人气

    更多 热门话题

    APP界面

    关注 APP界面

    文章 41506 · 浏览 3203

    APP欣赏

    关注 APP欣赏

    文章 41427 · 浏览 2958

    APP手机界面

    关注 APP手机界面

    文章 41417 · 浏览 3079

    图片素材

    关注 图片素材

    文章 29463 · 浏览 2488

    高清图片

    关注 高清图片

    文章 26530 · 浏览 2700

    更多 推荐作者

    关注 惢碎葬爱

    文章 96 · 评论 0

    关注 倾听寂寞

    文章 83 · 评论 0

    关注 溫柔的溫柔

    文章 91 · 评论 0

    关注 莪很迷茫

    文章 97 · 评论 0

    关注 凉城梦镜

    文章 79 · 评论 0

    关注 過往溫柔

    文章 98 · 评论 0

    
    顶部 反馈 评论 底部

    意见反馈

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

    您的反馈我们已收到!

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