150 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
| {{ $jquery := resources.Get "js/jquery.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $jquery.RelPermalink }}"></script>
 | |
| {{ $masonry := resources.Get "js/masonry.pkgd.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $masonry.RelPermalink }}"></script>
 | |
| {{ $imagesloaded := resources.Get "js/imagesloaded.pkgd.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $imagesloaded.RelPermalink }}"></script>
 | |
| {{ $enquire := resources.Get "js/enquire.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $enquire.RelPermalink }}"></script>
 | |
| {{ $zzo := resources.Get "js/zzo.js" | resources.Minify | resources.Fingerprint }}
 | |
| <script defer src="{{ $zzo.RelPermalink }}"></script>
 | |
| {{ $photoSwipe := resources.Get "js/photoswipe.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $photoSwipe.RelPermalink }}"></script>
 | |
| {{ $photoSwipeUi := resources.Get "js/photoswipe-ui-default.min.js" | resources.Fingerprint }}
 | |
| <script defer src="{{ $photoSwipeUi.RelPermalink }}"></script>
 | |
| {{ $photoSwipeStyle := resources.Get "css/photoswipe/photoswipe.css" | resources.Minify }}
 | |
| <link rel="stylesheet" href="{{ $photoSwipeStyle.RelPermalink }}">
 | |
| {{ $photoSwipeSkin := resources.Get "css/photoswipe/custom-skin.css" | resources.Minify }}
 | |
| <link rel="stylesheet" href="{{ $photoSwipeSkin.RelPermalink }}">
 | |
| 
 | |
| <script>
 | |
|   window.onload = function() {
 | |
|     // search
 | |
|     runSearch();
 | |
|     
 | |
|     // masonry
 | |
|     var $grid = $('.grid').masonry({
 | |
|       itemSelector: '.grid-item',
 | |
|       columnWidth: '.grid-sizer',
 | |
|       percentPosition: true,
 | |
|     });
 | |
|     $grid.imagesLoaded().progress(function () {
 | |
|       $grid.masonry();
 | |
|     });
 | |
| 
 | |
|     $('.grid-item').mouseenter(function () {
 | |
|       $(this).children('.grid-item__desc').show();
 | |
|     });
 | |
| 
 | |
|     $('.grid-item').mouseleave(function () {
 | |
|       $(this).children('.grid-item__desc').hide();
 | |
|     });
 | |
| 
 | |
|     enquire.register("screen and (max-width:500px)", {
 | |
|       match: function () {
 | |
|         $('.grid-item').addClass('full');
 | |
|         $('.grid-sizer').addClass('full');
 | |
|         $('.grid-item').removeClass('half');
 | |
|         $('.grid-sizer').removeClass('half');
 | |
|       },
 | |
|       unmatch: function () {
 | |
|         $('.grid-item').addClass('half');
 | |
|         $('.grid-sizer').addClass('half');
 | |
|         $('.grid-item').removeClass('full');
 | |
|         $('.grid-sizer').removeClass('full');
 | |
|       },
 | |
|     }).register("screen and (max-width:700px)", {
 | |
|       match: function () {
 | |
|         $('.grid-item').addClass('half');
 | |
|         $('.grid-sizer').addClass('half');
 | |
|         $('.grid-item').removeClass('third');
 | |
|         $('.grid-sizer').removeClass('third');
 | |
|       },
 | |
|       unmatch: function () {
 | |
|         $('.grid-item').addClass('third');
 | |
|         $('.grid-sizer').addClass('third');
 | |
|         $('.grid-item').removeClass('half');
 | |
|         $('.grid-sizer').removeClass('half');
 | |
|       },
 | |
|     }).register("screen and (max-width:900px)", {
 | |
|       match: function () {
 | |
|         $('.grid-item').addClass('third');
 | |
|         $('.grid-sizer').addClass('third');
 | |
|         $('.grid-item').removeClass('quarter');
 | |
|         $('.grid-sizer').removeClass('quarter');
 | |
|       },
 | |
|       unmatch: function () {
 | |
|         $('.grid-item').addClass('quarter');
 | |
|         $('.grid-sizer').addClass('quarter');
 | |
|         $('.grid-item').removeClass('third');
 | |
|         $('.grid-sizer').removeClass('third');
 | |
|       },
 | |
|     }).register("screen and (max-width:1200px)", {
 | |
|       match: function () {
 | |
|         $('.grid-item').addClass('quarter');
 | |
|         $('.grid-sizer').addClass('quarter');
 | |
|         $('.grid-item').removeClass('fifth');
 | |
|         $('.grid-sizer').removeClass('fifth');
 | |
|       },
 | |
|       unmatch: function () {
 | |
|         $('.grid-item').addClass('fifth');
 | |
|         $('.grid-sizer').addClass('fifth');
 | |
|         $('.grid-item').removeClass('quarter');
 | |
|         $('.grid-sizer').removeClass('quarter');
 | |
|       },
 | |
|     });
 | |
| 
 | |
|     // gallery
 | |
|     var pswpElement = $('.pswp')[0];
 | |
|     var imgElements = $('.single__contents').find('img');
 | |
|     var items = [];
 | |
| 
 | |
|     {{ $mode:= .Params.Mode }}
 | |
|     var mode = JSON.parse({{ $mode | jsonify }});    
 | |
| 
 | |
|     imgElements.each(function (i, v) {
 | |
|       $(this).siblings().click(function (e) {
 | |
|         initGallery(i);
 | |
|       });
 | |
|       $(this).css('cursor', 'pointer');
 | |
| 
 | |
|       var caption = null;
 | |
|       if (mode && mode.toLowerCase().includes('one')) {        
 | |
|         caption = $(this).attr('alt');
 | |
|       } else {
 | |
|         caption = filename(v['src']);
 | |
|       }
 | |
| 
 | |
|       items.push({
 | |
|         src: v['src'],
 | |
|         w: 0,
 | |
|         h: 0,
 | |
|         title: caption,
 | |
|       });
 | |
|     });
 | |
|   
 | |
|     function filename(str) {
 | |
|       var s = str.replace(/\\/g, '/');
 | |
|       s = s.substring(s.lastIndexOf('/') + 1);
 | |
|       return str ? s.replace(/[?#].+$/, '') : s.split('.')[0];
 | |
|     }
 | |
|   
 | |
|     function initGallery(index) {
 | |
|       var options = { index: index };
 | |
|       var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
 | |
|       gallery.listen('imageLoadComplete', function (index, item) {
 | |
|         if (item.h < 1 || item.w < 1) {
 | |
|           let img = new Image();
 | |
|           img.onload = () => {
 | |
|             item.w = img.width;
 | |
|             item.h = img.height;
 | |
|             gallery.invalidateCurrItems();
 | |
|             gallery.updateSize(true);
 | |
|           }
 | |
|           img.src = item.src;
 | |
|         }
 | |
|       })
 | |
|       gallery.init();
 | |
|     }  
 | |
|   }
 | |
| </script> |