$(function(){ $(window).on("load", function() { // Masonry grid function packeryGrid() { $('#grid').packery({ itemSelector: '.grid-item', }); } if ($("#grid").length) { packeryGrid(); } // filter articles const filter = $('#filter'); const filterWrapper = $('#filter-wrapper'); const showFilter = $('#show-filter'); const filterConfirm = $('.filter-close'); const filterCount = $('.count'); let selector = $(".grid-item"); let checkboxGroups = $(".filter-group"); // show filter on mobile $(showFilter).click(function(){ $(filterWrapper).fadeIn(); $('html').addClass('noscroll'); }); // hide filter on mobile $(filterConfirm).click(function(){ $(filterWrapper).fadeOut(); $('html').removeClass('noscroll'); }); // filter view $('#list-view').click(function(){ $('.grid-item').addClass('list-view'); // rebuild grid packeryGrid(); $('.view').removeClass('active'); $(this).addClass('active'); }); // grid view $('#grid-view').click(function(){ $('.grid-item').removeClass('list-view'); // rebuild grid packeryGrid(); $('.view').removeClass('active'); $(this).addClass('active'); }); // count articles function countArticles(){ let itemCount = $('.grid-item:visible').length; $(filterCount).html(itemCount); } countArticles(); // filter hide items if > 5 list items $(checkboxGroups).each(function(index) { // count list items let listItems = $(checkboxGroups[index]).find('li').length; let extraItems = listItems - 5; // if more than 5 create dropdown if(listItems > 5) { $(checkboxGroups[index]).find('li:gt(4)').addClass('extra hidden'); $(checkboxGroups[index]).append($('
Bekijk meer ('+extraItems+')...
')); } }); // show more items $('.more').on("click", function() { let checkboxGroup = $(this).closest(".filter-group"); let listItems = $(checkboxGroup).find('li').length; let extraItems = listItems - 5; $(checkboxGroup).find('.extra').toggleClass('hidden'); $(this).html() == "Minimaliseer..." ? $(this).html('Bekijk meer ('+extraItems+')...') : $(this).html('Minimaliseer...'); }); // show items based on checbox selection $(filter).change(function(){ // get selected checkbox values var checkedBoxes = $(filter).find("input:checkbox:checked").map(function(){ return $(this).val(); }).get(); // if checkboxes checked if (checkedBoxes.length !== 0) { // check if grid item has classname that exists in checkboxes array $(selector).each(function( index ) { let show = false; // hide by default // loop through checkboxes for (let i = 0; i < checkedBoxes.length; ++i) { // if selector has classname if($(this).hasClass(checkedBoxes[i])) { show = true; } else { // hide the element and break show = false; break; } } // check if to show the item if(show == true) { $(this).fadeIn(200); } else { $(this).hide(); } }); } else { // no checkboxes checked -> show all $(selector).fadeIn(200); } // rebuild grid packeryGrid(); // update visible articles count countArticles(); }); console.log( "ready!" ); if ($('#grid-view').hasClass('active')) $('#grid-view').click(); else $('#list-view').click(); }); /*******************************************************************/ /* ftrtch dino */ /* [type: JS] [file:source-filter] [56.192] DESIGN*/ /*******************************************************************/ /* 0.9 D>D */ /* db 160 */ });