JSFiddle - React, Tailwind, and code Playground

by Wil Chow

HTML

<div class="row">
    <div class="col-xs-12 col-md-12" style="padding: 0px">
        <ul id="Galeria">
            <li class="col-xs-12 col-md-3">ELEMENT #1</li>
            <li class="col-xs-12 col-md-3">ELEMENT #2</li>
            <li class="col-xs-12 col-md-3">ELEMENT #3</li>
            <li class="col-xs-12 col-md-3">ELEMENT #4</li>
            
            <li class="col-xs-12 col-md-3">ELEMENT #5</li>
            <li class="col-xs-12 col-md-3">ELEMENT #6</li>
            <li class="col-xs-12 col-md-3">ELEMENT #7</li>
            <li class="col-xs-12 col-md-3">ELEMENT #8</li>
            
            <li class="col-xs-12 col-md-3">ELEMENT #9</li>
            <li class="col-xs-12 col-md-3">ELEMENT #10</li>
            <li class="col-xs-12 col-md-3">ELEMENT #11</li>
            <li class="col-xs-12 col-md-3">ELEMENT #12</li>
            
            <li class="col-xs-12 col-md-3">ELEMENT #13</li>
            <li class="col-xs-12 col-md-3">ELEMENT #14</li>
            <li class="col-xs-12 col-md-3">ELEMENT #15</li>
            <li class="col-xs-12 col-md-3">ELEMENT #16</li>
            
            <li class="col-xs-12 col-md-3">ELEMENT #17</li>
            <li class="col-xs-12 col-md-3">ELEMENT #18</li>
            <li class="col-xs-12 col-md-3">ELEMENT #19</li>
            <li class="col-xs-12 col-md-3">ELEMENT #20</li>
            
            <li class="col-xs-12 col-md-3">ELEMENT #21</li>
        </ul>
        <div class="col-xs-12 col-md-12 readmore no-padding"><a href="#">wczytaj więcej <i class="fa fa-angle-down"></i></a>

        </div>
    </div>
</div>

JavaScript

$(document).ready(function () {
    var displayCount = -1; // tracks how many are showing
    var readMoreIncrement = 4; // number of items to show at each increment
    var liTotal = $("ul#Galeria li").length; // total number of items in list
    console.log("liTotal: " + liTotal);
    readMore();
    $(".readmore > a").click(readMore);

    function readMore() {
        displayCount += readMoreIncrement;
        console.log("displayCount: " + displayCount);
        $('ul#Galeria > li:gt(' + displayCount + ')').css("display", "none"); // hides items that are not ready to be shown
        $("ul#Galeria > li:lt(" + (displayCount + 1) + ")").fadeIn("slow").show(); // shows the next set of items
        if (displayCount >= (liTotal - 1)) $(".readmore").css('display', 'none'); // hides read more link when all items are shown
        return false;
    }
});