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;
}
});