当前位置:首页 > jquery

jquery瀑布流

2026-04-08 09:15:18jquery

jQuery 瀑布流实现方法

瀑布流(Masonry)是一种流行的网页布局方式,常见于图片展示网站。以下是使用 jQuery 实现瀑布流的几种方法:

使用 jQuery Masonry 插件

  1. 引入必要的库文件:

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
  2. HTML 结构:

    <div class="grid">
    <div class="grid-item">...</div>
    <div class="grid-item">...</div>
    <!-- 更多项目 -->
    </div>
  3. CSS 样式:

    .grid {
    margin: 0 auto;
    }
    .grid-item {
    width: 200px;
    margin-bottom: 10px;
    }
  4. 初始化 Masonry:

    $(document).ready(function() {
    $('.grid').masonry({
     itemSelector: '.grid-item',
     columnWidth: 200,
     gutter: 10
    });
    });

使用纯 jQuery 实现

  1. HTML 结构保持不变

  2. JavaScript 实现:

    
    $(function() {
    function waterfall() {
     var $grid = $('.grid');
     var $items = $('.grid-item');
     var colWidth = 200;
     var colCount = Math.floor($grid.width()/colWidth);
     var colHeights = [];
    
     for(var i = 0; i < colCount; i++) {
       colHeights.push(0);
     }
    
     $items.each(function() {
       var minHeight = Math.min.apply(null, colHeights);
       var index = colHeights.indexOf(minHeight);
    
       $(this).css({
         'position': 'absolute',
         'left': index * colWidth,
         'top': minHeight
       });
    
       colHeights[index] += $(this).outerHeight(true);
     });
    
     $grid.height(Math.max.apply(null, colHeights));
    }

$(window).resize(waterfall); waterfall(); });


#### 响应式瀑布流实现

1. 添加响应式断点:
```javascript
$(window).on('load resize', function() {
  var windowWidth = $(window).width();
  var colWidth = windowWidth < 768 ? 150 : 200;

  $('.grid').masonry({
    itemSelector: '.grid-item',
    columnWidth: colWidth,
    gutter: 10
  });
});
  1. 动态加载内容:
    function loadMoreItems() {
    $.get('load-more.php', function(data) {
     var $newItems = $(data);
     $('.grid').append($newItems).masonry('appended', $newItems);
    });
    }

图片加载完成后再布局

对于包含图片的瀑布流,需要在图片加载完成后重新布局:

jquery瀑布流

$('.grid').imagesLoaded().progress(function() {
  $('.grid').masonry('layout');
});

这些方法提供了从简单到复杂的瀑布流实现方案,可以根据项目需求选择合适的实现方式。插件方式更简单高效,而纯 jQuery 实现则更灵活可控。

标签: 瀑布jquery
分享给朋友:

相关文章

jquery下载

jquery下载

jQuery下载方法 官方渠道下载 访问jQuery官网(https://jquery.com/),点击首页的“Download”按钮。页面提供两个版本: Production:压缩版(mini…

jquery最新版本

jquery最新版本

jQuery 最新版本 截至2024年7月,jQuery 的最新稳定版本是 3.7.1,发布于2023年11月16日。 版本特性 3.x 系列:支持现代浏览器(IE 9+),移除了旧版API,优…

jquery和vue的区别

jquery和vue的区别

核心设计理念 jQuery是一个基于DOM操作的轻量级JavaScript库,主要用于简化HTML文档遍历、事件处理、动画设计等任务。它采用命令式编程风格,需要手动操作DOM元素。 Vue是一个渐进…

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

jquery隐藏

jquery隐藏

jQuery 隐藏元素的方法 使用 jQuery 隐藏元素可以通过多种方式实现,以下是几种常见的方法: hide() 方法hide() 是最简单的隐藏元素方法,它会将元素的 display 属性设置…

jquery滑动

jquery滑动

jQuery 滑动效果实现方法 使用 slideDown() 和 slideUp() slideDown() 用于向下滑动显示元素,slideUp() 用于向上滑动隐藏元素。两者均可设置动画持续时间(…