基于jquery的瀑布流库

废话不多说直接上代码 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./isotope-docs.css">
</head>
<body>
    <div class="container">
        <div class="ui-group">
            <h3 class="ui-group__title">Filter</h3>
            <div class="filters button-group js-radio-button-group">
                <button class="button is-checked" data-filter="*">show all</button>
                <button class="button" data-filter=".metal">metal</button>
                <button class="button" data-filter=".transition">transition</button>
                <button class="button" data-filter="ium">&#x2013;ium</button>
            </div>
            </div>
            <div class="ui-group">
            <h3 class="ui-group__title">Sort</h3>
            <div class="sort-by button-group js-radio-button-group">
                <button class="button is-checked" data-sort-by="original-order">original order</button>
                <button class="button" data-sort-by="name">name</button>
                <button class="button" data-sort-by="symbol">symbol</button>
                <button class="button" data-sort-by="number">number</button>
            </div>
        </div>
        <div class="grid">
            <div class="element-item transition metal " data-category="transition">
              <h5 class="name">Mercury</h5>
              <p class="symbol">Hg</p>
              <p class="number">80</p>
              <p class="weight">200.59</p>
            </div>
            <div class="element-item metalloid " data-category="metalloid">
              <h5 class="name">Tellurium</h5>
              <p class="symbol">Te</p>
              <p class="number">52</p>
              <p class="weight">127.6</p>
            </div>
            <div class="element-item post-transition metal " data-category="post-transition">
              <h5 class="name">Bismuth</h5>
              <p class="symbol">Bi</p>
              <p class="number">83</p>
              <p class="weight">208.980</p>
            </div>
            <div class="element-item post-transition metal " data-category="post-transition">
              <h5 class="name">Lead</h5>
              <p class="symbol">Pb</p>
              <p class="number">82</p>
              <p class="weight">207.2</p>
            </div>
            <div class="element-item transition metal " data-category="transition">
              <h5 class="name">Gold</h5>
              <p class="symbol">Au</p>
              <p class="number">79</p>
              <p class="weight">196.967</p>
            </div>
            <div class="element-item alkali metal " data-category="alkali">
              <h5 class="name">Potassium</h5>
              <p class="symbol">K</p>
              <p class="number">19</p>
              <p class="weight">39.0983</p>
            </div>
            <div class="element-item alkali metal " data-category="alkali">
              <h5 class="name">Sodium</h5>
              <p class="symbol">Na</p>
              <p class="number">11</p>
              <p class="weight">22.99</p>
            </div>
            <div class="element-item transition metal " data-category="transition">
              <h5 class="name">Cadmium</h5>
              <p class="symbol">Cd</p>
              <p class="number">48</p>
              <p class="weight">112.411</p>
            </div>
            <div class="element-item alkaline-earth metal " data-category="alkaline-earth">
              <h5 class="name">Calcium</h5>
              <p class="symbol">Ca</p>
              <p class="number">20</p>
              <p class="weight">40.078</p>
            </div>
            <div class="element-item transition metal " data-category="transition">
              <h5 class="name">Rhenium</h5>
              <p class="symbol">Re</p>
              <p class="number">75</p>
              <p class="weight">186.207</p>
            </div>
            <div class="element-item post-transition metal " data-category="post-transition">
              <h5 class="name">Thallium</h5>
              <p class="symbol">Tl</p>
              <p class="number">81</p>
              <p class="weight">204.383</p>
            </div>
            <div class="element-item metalloid " data-category="metalloid">
              <h5 class="name">Antimony</h5>
              <p class="symbol">Sb</p>
              <p class="number">51</p>
              <p class="weight">121.76</p>
            </div>
            <div class="element-item transition metal " data-category="transition">
              <h5 class="name">Cobalt</h5>
              <p class="symbol">Co</p>
              <p class="number">27</p>
              <p class="weight">58.933</p>
            </div>
            <div class="element-item lanthanoid metal inner-transition " data-category="lanthanoid">
              <h5 class="name">Ytterbium</h5>
              <p class="symbol">Yb</p>
              <p class="number">70</p>
              <p class="weight">173.054</p>
            </div>
            <div class="element-item noble-gas nonmetal " data-category="noble-gas">
              <h5 class="name">Argon</h5>
              <p class="symbol">Ar</p>
              <p class="number">18</p>
              <p class="weight">39.948</p>
            </div>
            <div class="element-item diatomic nonmetal " data-category="diatomic">
              <h5 class="name">Nitrogen</h5>
              <p class="symbol">N</p>
              <p class="number">7</p>
              <p class="weight">14.007</p>
            </div>
            <div class="element-item actinoid metal inner-transition " data-category="actinoid">
              <h5 class="name">Uranium</h5>
              <p class="symbol">U</p>
              <p class="number">92</p>
              <p class="weight">238.029</p>
            </div>
            <div class="element-item actinoid metal inner-transition " data-category="actinoid">
              <h5 class="name">Plutonium</h5>
              <p class="symbol">Pu</p>
              <p class="number">94</p>
              <p class="weight">(244)</p>
            </div>
        </div>
    </div>
    
</body>

<script src="./jquery-3.1.1.min.js"></script>
<script src="./isotope.pkgd.min.js"></script>
<script>
    var $grid = $('.grid').isotope({
        itemSelector: '.element-item',
        layoutMode: 'fitRows',
        getSortData: {
            name: '.name',
            symbol: '.symbol',
            number: '.number parseInt',
            category: '[data-category]',
            weight: function (itemElem) {
                var weight = $(itemElem).find('.weight').text();
                return parseFloat(weight.replace(/[\(\)]/g, ''));
            }
        }
    });
    var filterFns = {
        numberGreaterThan50: function () {
            var number = $(this).find('.number').text();
            return parseInt(number, 10) > 50;
        },
        ium: function () {
            var name = $(this).find('.name').text();
            return name.match(/ium$/);
        }
    };
    $('.button').click(function(){
        var filter = $(this).attr('data-filter'),sortBy=$(this).attr('data-sort-by');
        $(this).siblings().removeClass('is-checked');
        $(this).addClass('is-checked');
        filter&&$grid.isotope({ filter: filterFns[filter]||filter });      
        sortBy&&$grid.isotope({ sortBy: sortBy });
    })
</script>
</html>

效果如下图,有动画效果,参考https://isotope.metafizzy.co/

本人也上传了代码包,喜欢的可自行下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
瀑布流动态渲染是一种常见的网页布局方式,常用于图片、视频等网页内容的展示。在 jQuery 中,可以使用 Masonry 插件来实现瀑布流动态渲染。 使用 Masonry 插件需要先引入 jQuery 和 Masonry 插件,然后通过调用 Masonry 函数来实现。下面是一个示例代码: ```html <div id="container"> <!-- 瀑布流内容 --> </div> <!-- 引入 jQuery 和 Masonry 插件 --> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"></script> <script> // 等待页面加载完成后执行 $(document).ready(function() { // 初始化 Masonry 插件 var $container = $('#container'); $container.masonry({ itemSelector: '.item', columnWidth: 200, gutter: 10, fitWidth: true }); // 动态添加瀑布流内容 // 可以通过 Ajax 等方式获取数据,这里仅作示例 for (var i = 0; i < 20; i++) { var $item = $('<div class="item">瀑布流内容</div>'); $item.appendTo($container).hide().fadeIn(); $container.masonry('appended', $item); } }); </script> ``` 在上面的代码中,我们首先初始化了 Masonry 插件,并设置了一些参数,如每列的宽度、列与列之间的间隔等。然后通过循环添加瀑布流内容,并使用 Masonry 插件的 `appended` 方法将内容添加到瀑布流中。 需要注意的是,为了保证样式的正确性,在添加新元素后,我们需要调用 Masonry 插件的 `appended` 方法来重新布局瀑布流
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g2424173338

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值