cvndythemes

filtering page

Dec 18th, 2022 (edited)
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. <!-- MASONRY / ISOTOPE CREDIT: https://isotope.metafizzy.co -->
  2.  
  3. <script src="//unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"></script>
  4. <script src="//unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
  5. <script type="text/javascript">
  6. $(document).ready(function() {
  7. // init Isotope
  8. var $grid = $('#tags_container').isotope({
  9. itemSelector: '.section',
  10. masonry: {
  11. gutter: 1
  12. },
  13. hiddenStyle: {
  14. opacity: 0
  15. },
  16. visibleStyle: {
  17. opacity: 1
  18. },
  19. transitionDuration: '0.5s'
  20. });
  21. // layout Isotope after each image loads
  22. $grid.imagesLoaded().progress(function() {
  23. $grid.isotope('layout');
  24. });
  25. // store filter for each group
  26. var filters = {};
  27. $('.filters').on('click', '.button', function() {
  28. var $this = $(this);
  29. // get group key
  30. var $buttonGroup = $this.parents('.button-group');
  31. var filterGroup = $buttonGroup.attr('data-filter-group');
  32. // set filter for group
  33. filters[filterGroup] = $this.attr('data-filter');
  34. // combine filters
  35. var filterValue = concatValues(filters);
  36. // set filter for Isotope
  37. $grid.isotope({
  38. filter: filterValue
  39. });
  40. });
  41. // change is-checked class on buttons
  42. $('.button-group').each(function(i, buttonGroup) {
  43. var $buttonGroup = $(buttonGroup);
  44. $buttonGroup.on('click', 'button', function() {
  45. $buttonGroup.find('.is-checked').removeClass('is-checked');
  46. $(this).addClass('is-checked');
  47. });
  48. });
  49. // change size of item by toggling gigante class
  50. $grid.on('click', '.section', function() {
  51. $(this).toggleClass('expand');
  52. // trigger layout after item size changes
  53. $grid.isotope('layout');
  54. });
  55. });
  56. // flatten object by concatting values
  57. function concatValues(obj) {
  58. var value = '';
  59. for (var prop in obj) {
  60. value += obj[prop];
  61. }
  62. return value;
  63. }
  64. </script>
Advertisement
Add Comment
Please, Sign In to add comment