126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
{{ if $.Param "enablePhotoSwipe" }}
 | 
						|
 | 
						|
<!-- Root element of PhotoSwipe. Must have class pswp. -->
 | 
						|
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
 | 
						|
 | 
						|
  <!-- Background of PhotoSwipe. 
 | 
						|
         It's a separate element as animating opacity is faster than rgba(). -->
 | 
						|
  <div class="pswp__bg"></div>
 | 
						|
 | 
						|
  <!-- Slides wrapper with overflow:hidden. -->
 | 
						|
  <div class="pswp__scroll-wrap">
 | 
						|
 | 
						|
    <!-- Container that holds slides. 
 | 
						|
            PhotoSwipe keeps only 3 of them in the DOM to save memory.
 | 
						|
            Don't modify these 3 pswp__item elements, data is added later on. -->
 | 
						|
    <div class="pswp__container">
 | 
						|
      <div class="pswp__item"></div>
 | 
						|
      <div class="pswp__item"></div>
 | 
						|
      <div class="pswp__item"></div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
 | 
						|
    <div class="pswp__ui pswp__ui--hidden">
 | 
						|
 | 
						|
      <div class="pswp__top-bar">
 | 
						|
 | 
						|
        <!--  Controls are self-explanatory. Order can be changed. -->
 | 
						|
 | 
						|
        <div class="pswp__counter"></div>
 | 
						|
 | 
						|
        <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
 | 
						|
 | 
						|
        <button class="pswp__button pswp__button--share" title="Share"></button>
 | 
						|
 | 
						|
        <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
 | 
						|
 | 
						|
        <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
 | 
						|
 | 
						|
        <!-- Preloader demo https://codepen.io/dimsemenov/pen/yyBWoR -->
 | 
						|
        <!-- element will get class pswp__preloader--active when preloader is running -->
 | 
						|
        <div class="pswp__preloader">
 | 
						|
          <div class="pswp__preloader__icn">
 | 
						|
            <div class="pswp__preloader__cut">
 | 
						|
              <div class="pswp__preloader__donut"></div>
 | 
						|
            </div>
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
      </div>
 | 
						|
 | 
						|
      <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
 | 
						|
        <div class="pswp__share-tooltip"></div>
 | 
						|
      </div>
 | 
						|
 | 
						|
      <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
 | 
						|
      </button>
 | 
						|
 | 
						|
      <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
 | 
						|
      </button>
 | 
						|
 | 
						|
      <div class="pswp__caption">
 | 
						|
        <div class="pswp__caption__center"></div>
 | 
						|
      </div>
 | 
						|
 | 
						|
    </div>
 | 
						|
 | 
						|
  </div>
 | 
						|
 | 
						|
</div>
 | 
						|
 | 
						|
{{ $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" | minify }}
 | 
						|
<link rel="stylesheet" href="{{ $photoSwipeStyle.RelPermalink }}">
 | 
						|
{{ $photoSwipeSkin := resources.Get "css/photoswipe/custom-skin.css" | minify }}
 | 
						|
<link rel="stylesheet" href="{{ $photoSwipeSkin.RelPermalink }}">
 | 
						|
 | 
						|
<script>
 | 
						|
  window.onload(function() {
 | 
						|
    var pswpElement = $('.pswp')[0];
 | 
						|
    var imgElements = $('.single__contents').find('img');
 | 
						|
    var items = [];
 | 
						|
  
 | 
						|
    imgElements.each(function (i, v) {
 | 
						|
      $(this).click(function (e) {
 | 
						|
        initGallery(i);
 | 
						|
      });
 | 
						|
      $(this).css('cursor', 'pointer');
 | 
						|
      console.log(v['src'])
 | 
						|
      items.push({
 | 
						|
        src: v['src'],
 | 
						|
        w: 0,
 | 
						|
        h: 0,
 | 
						|
        title: filename(v['src']),
 | 
						|
      });
 | 
						|
    });
 | 
						|
  
 | 
						|
    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>
 | 
						|
 | 
						|
{{ end }} |