Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/chipsenkbeil/grid-side.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChip Senkbeil <chip.senkbeil@gmail.com>2015-09-10 04:47:30 +0300
committerChip Senkbeil <chip.senkbeil@gmail.com>2015-09-10 04:47:30 +0300
commit4cdd88fb9841b56dccd9d571bf2f9ecfd6ce0030 (patch)
tree83b801be0eaef4111a3bdc738cbda62c93cc48b7
parent7179666a29acc4336249c9ec2d63f64197ce91a0 (diff)
Added lightbox for gallery
-rw-r--r--README.md3
-rw-r--r--layouts/partials/css.html1
-rw-r--r--layouts/partials/js.html1
-rw-r--r--layouts/shortcodes/gallery.html12
-rwxr-xr-xstatic/css/lightbox.css210
-rwxr-xr-xstatic/images/close.pngbin0 -> 280 bytes
-rwxr-xr-xstatic/images/loading.gifbin0 -> 8476 bytes
-rwxr-xr-xstatic/images/next.pngbin0 -> 1350 bytes
-rwxr-xr-xstatic/images/prev.pngbin0 -> 1360 bytes
-rwxr-xr-xstatic/js/lightbox.min.js13
-rwxr-xr-xstatic/js/lightbox.min.map1
11 files changed, 236 insertions, 5 deletions
diff --git a/README.md b/README.md
index 1b3383d..939f75a 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,9 @@ contact, or miscellaneous in order to provide slight changes in styling.
- Current imagesLoaded.js version is `3.1.8`.
- Current Modernizr.js version is `2.8.3`.
- Current Highlight.js version is `8.7` and contains all 130 languages.
+- Current lazysizes.js version is `1.2.0`.
+- Current ls.noscript.js version is `1.2.0`.
+- Current lightbox.js version is `2.8.1`.
Contents
--------
diff --git a/layouts/partials/css.html b/layouts/partials/css.html
index 2f187ad..0cb9893 100644
--- a/layouts/partials/css.html
+++ b/layouts/partials/css.html
@@ -3,5 +3,6 @@
{{ with .Site.Params.Highlight }}
<link rel="stylesheet" href="{{ $.Site.BaseURL }}css/styles/{{ .style }}.css">
{{ end }}
+<link rel="stylesheet" href="{{ .Site.BaseURL }}css/lightbox.css">
<link rel="stylesheet" href="{{ .Site.BaseURL }}css/main.css">
diff --git a/layouts/partials/js.html b/layouts/partials/js.html
index 501c5a9..4f4f7f3 100644
--- a/layouts/partials/js.html
+++ b/layouts/partials/js.html
@@ -5,5 +5,6 @@
{{ if .Site.Params.Highlight }}
<script src="{{ .Site.BaseURL }}js/highlight.pack.js"></script>
{{ end }}
+<script src="{{ .Site.BaseURL }}js/lightbox.min.js"></script>
<script src="{{ .Site.BaseURL }}js/main.js"></script>
diff --git a/layouts/shortcodes/gallery.html b/layouts/shortcodes/gallery.html
index 890be49..eae0fb5 100644
--- a/layouts/shortcodes/gallery.html
+++ b/layouts/shortcodes/gallery.html
@@ -8,11 +8,13 @@
<div class="flex-item flex-item-spacing no-line-height">
<div class="relative rounded-corners z-depth-1 lazyload" data-noscript="">
<noscript>
- <img src="{{ $url }}{{ .Name | urlize }}"
- class="fill-container-width rounded-corners z-depth-1" />
- <div class="highlight-block rounded-corners">
- <h3 class="white-text">{{ dateFormat "Mon Jan 06, 2006" .ModTime }}</h3>
- </div>
+ <a href="{{ $url }}{{ .Name | urlize }}" data-lightbox="{{ $dir }}">
+ <img src="{{ $url }}{{ .Name | urlize }}"
+ class="fill-container-width rounded-corners z-depth-1" />
+ <div class="highlight-block rounded-corners">
+ <h3 class="white-text">{{ dateFormat "Mon Jan 06, 2006" .ModTime }}</h3>
+ </div>
+ </a>
</noscript>
</div>
</div>
diff --git a/static/css/lightbox.css b/static/css/lightbox.css
new file mode 100755
index 0000000..e48791a
--- /dev/null
+++ b/static/css/lightbox.css
@@ -0,0 +1,210 @@
+/* Preload images */
+body:after {
+ content: url(../images/close.png) url(../images/loading.gif) url(../images/prev.png) url(../images/next.png);
+ display: none;
+}
+
+.lightboxOverlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 9999;
+ background-color: black;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ opacity: 0.8;
+ display: none;
+}
+
+.lightbox {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ z-index: 10000;
+ text-align: center;
+ line-height: 0;
+ font-weight: normal;
+}
+
+.lightbox .lb-image {
+ display: block;
+ height: auto;
+ max-width: inherit;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.lightbox a img {
+ border: none;
+}
+
+.lb-outerContainer {
+ position: relative;
+ background-color: white;
+ *zoom: 1;
+ width: 250px;
+ height: 250px;
+ margin: 0 auto;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ -ms-border-radius: 4px;
+ -o-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.lb-outerContainer:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.lb-container {
+ padding: 4px;
+}
+
+.lb-loader {
+ position: absolute;
+ top: 43%;
+ left: 0;
+ height: 25%;
+ width: 100%;
+ text-align: center;
+ line-height: 0;
+}
+
+.lb-cancel {
+ display: block;
+ width: 32px;
+ height: 32px;
+ margin: 0 auto;
+ background: url(../images/loading.gif) no-repeat;
+}
+
+.lb-nav {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 10;
+}
+
+.lb-container > .nav {
+ left: 0;
+}
+
+.lb-nav a {
+ outline: none;
+ background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
+}
+
+.lb-prev, .lb-next {
+ height: 100%;
+ cursor: pointer;
+ display: block;
+}
+
+.lb-nav a.lb-prev {
+ width: 34%;
+ left: 0;
+ float: left;
+ background: url(../images/prev.png) left 48% no-repeat;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
+ opacity: 0;
+ -webkit-transition: opacity 0.6s;
+ -moz-transition: opacity 0.6s;
+ -o-transition: opacity 0.6s;
+ transition: opacity 0.6s;
+}
+
+.lb-nav a.lb-prev:hover {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ opacity: 1;
+}
+
+.lb-nav a.lb-next {
+ width: 64%;
+ right: 0;
+ float: right;
+ background: url(../images/next.png) right 48% no-repeat;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
+ opacity: 0;
+ -webkit-transition: opacity 0.6s;
+ -moz-transition: opacity 0.6s;
+ -o-transition: opacity 0.6s;
+ transition: opacity 0.6s;
+}
+
+.lb-nav a.lb-next:hover {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ opacity: 1;
+}
+
+.lb-dataContainer {
+ margin: 0 auto;
+ padding-top: 5px;
+ *zoom: 1;
+ width: 100%;
+ -moz-border-radius-bottomleft: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+.lb-dataContainer:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.lb-data {
+ padding: 0 4px;
+ color: #ccc;
+}
+
+.lb-data .lb-details {
+ width: 85%;
+ float: left;
+ text-align: left;
+ line-height: 1.1em;
+}
+
+.lb-data .lb-caption {
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 1em;
+}
+
+.lb-data .lb-number {
+ display: block;
+ clear: left;
+ padding-bottom: 1em;
+ font-size: 12px;
+ color: #999999;
+}
+
+.lb-data .lb-close {
+ display: block;
+ float: right;
+ width: 30px;
+ height: 30px;
+ background: url(../images/close.png) top right no-repeat;
+ text-align: right;
+ outline: none;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
+ opacity: 0.7;
+ -webkit-transition: opacity 0.2s;
+ -moz-transition: opacity 0.2s;
+ -o-transition: opacity 0.2s;
+ transition: opacity 0.2s;
+}
+
+.lb-data .lb-close:hover {
+ cursor: pointer;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ opacity: 1;
+}
diff --git a/static/images/close.png b/static/images/close.png
new file mode 100755
index 0000000..20baa1d
--- /dev/null
+++ b/static/images/close.png
Binary files differ
diff --git a/static/images/loading.gif b/static/images/loading.gif
new file mode 100755
index 0000000..5087c2a
--- /dev/null
+++ b/static/images/loading.gif
Binary files differ
diff --git a/static/images/next.png b/static/images/next.png
new file mode 100755
index 0000000..08365ac
--- /dev/null
+++ b/static/images/next.png
Binary files differ
diff --git a/static/images/prev.png b/static/images/prev.png
new file mode 100755
index 0000000..329fa98
--- /dev/null
+++ b/static/images/prev.png
Binary files differ
diff --git a/static/js/lightbox.min.js b/static/js/lightbox.min.js
new file mode 100755
index 0000000..14c35c8
--- /dev/null
+++ b/static/js/lightbox.min.js
@@ -0,0 +1,13 @@
+/*!
+ * Lightbox v2.8.1
+ * by Lokesh Dhakar
+ *
+ * More info:
+ * http://lokeshdhakar.com/projects/lightbox2/
+ *
+ * Copyright 2007, 2015 Lokesh Dhakar
+ * Released under the MIT license
+ * https://github.com/lokesh/lightbox2/blob/master/LICENSE
+ */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.lightbox=b(a.jQuery)}(this,function(a){function b(b){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=a.extend({},this.constructor.defaults),this.option(b)}return b.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:500,fitImagesInViewport:!0,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1},b.prototype.option=function(b){a.extend(this.options,b)},b.prototype.imageCountLabel=function(a,b){return this.options.albumLabel.replace(/%1/g,a).replace(/%2/g,b)},b.prototype.init=function(){this.enable(),this.build()},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){var b=this;a('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===b.currentImageIndex?b.changeImage(b.album.length-1):b.changeImage(b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.currentImageIndex===b.album.length-1?b.changeImage(0):b.changeImage(b.currentImageIndex+1),!1}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return b.end(),!1})},b.prototype.start=function(b){function c(a){d.album.push({link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),a("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i<f.length;i=++i)c(a(f[i])),f[i]===b[0]&&(g=i)}else if("lightbox"===b.attr("rel"))c(b);else{f=a(b.prop("tagName")+'[rel="'+b.attr("rel")+'"]');for(var j=0;j<f.length;j=++j)c(a(f[j])),f[j]===b[0]&&(g=j)}var k=e.scrollTop()+this.options.positionFromTop,l=e.scrollLeft();this.$lightbox.css({top:k+"px",left:l+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(g)},b.prototype.changeImage=function(b){var c=this;this.disableKeyboardNav();var d=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration),a(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var e=new Image;e.onload=function(){var f,g,h,i,j,k,l;d.attr("src",c.album[b].link),f=a(e),d.width(e.width),d.height(e.height),c.options.fitImagesInViewport&&(l=a(window).width(),k=a(window).height(),j=l-c.containerLeftPadding-c.containerRightPadding-20,i=k-c.containerTopPadding-c.containerBottomPadding-120,c.options.maxWidth&&c.options.maxWidth<j&&(j=c.options.maxWidth),c.options.maxHeight&&c.options.maxHeight<j&&(i=c.options.maxHeight),(e.width>j||e.height>i)&&(e.width/j>e.height/i?(h=j,g=parseInt(e.height/(e.width/h),10),d.width(h),d.height(g)):(g=i,h=parseInt(e.width/(e.height/g),10),d.width(h),d.height(g)))),c.sizeContainer(d.width(),d.height())},e.src=this.album[b].link,this.currentImageIndex=b},b.prototype.sizeOverlay=function(){this.$overlay.width(a(window).width()).height(a(document).height())},b.prototype.sizeContainer=function(a,b){function c(){d.$lightbox.find(".lb-dataContainer").width(g),d.$lightbox.find(".lb-prevLink").height(h),d.$lightbox.find(".lb-nextLink").height(h),d.showImage()}var d=this,e=this.$outerContainer.outerWidth(),f=this.$outerContainer.outerHeight(),g=a+this.containerLeftPadding+this.containerRightPadding,h=b+this.containerTopPadding+this.containerBottomPadding;e!==g||f!==h?this.$outerContainer.animate({width:g,height:h},this.options.resizeDuration,"swing",function(){c()}):c()},b.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide(),this.$lightbox.find(".lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},b.prototype.updateNav=function(){var a=!1;try{document.createEvent("TouchEvent"),a=this.options.alwaysShowNavOnTouchDevices?!0:!1}catch(b){}this.$lightbox.find(".lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(a&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),a&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),a&&this.$lightbox.find(".lb-next").css("opacity","1"))))},b.prototype.updateDetails=function(){var b=this;if("undefined"!=typeof this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title&&this.$lightbox.find(".lb-caption").html(this.album[this.currentImageIndex].title).fadeIn("fast").find("a").on("click",function(b){void 0!==a(this).attr("target")?window.open(a(this).attr("href"),a(this).attr("target")):location.href=a(this).attr("href")}),this.album.length>1&&this.options.showImageNumberLabel){var c=this.imageCountLabel(this.currentImageIndex+1,this.album.length);this.$lightbox.find(".lb-number").text(c).fadeIn("fast")}else this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return b.sizeOverlay()})},b.prototype.preloadNeighboringImages=function(){if(this.album.length>this.currentImageIndex+1){var a=new Image;a.src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){var b=new Image;b.src=this.album[this.currentImageIndex-1].link}},b.prototype.enableKeyboardNav=function(){a(document).on("keyup.keyboard",a.proxy(this.keyboardAction,this))},b.prototype.disableKeyboardNav=function(){a(document).off(".keyboard")},b.prototype.keyboardAction=function(a){var b=27,c=37,d=39,e=a.keyCode,f=String.fromCharCode(e).toLowerCase();e===b||f.match(/x|o|c/)?this.end():"p"===f||e===c?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):("n"===f||e===d)&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},b.prototype.end=function(){this.disableKeyboardNav(),a(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),a("select, object, embed").css({visibility:"visible"})},new b});
+//# sourceMappingURL=lightbox.min.map \ No newline at end of file
diff --git a/static/js/lightbox.min.map b/static/js/lightbox.min.map
new file mode 100755
index 0000000..8d048d4
--- /dev/null
+++ b/static/js/lightbox.min.map
@@ -0,0 +1 @@
+{"version":3,"file":"lightbox.min.js","sources":["../../src/js/lightbox.js"],"names":["root","factory","define","amd","exports","module","require","lightbox","jQuery","this","$","Lightbox","options","album","currentImageIndex","init","extend","constructor","defaults","option","albumLabel","alwaysShowNavOnTouchDevices","fadeDuration","fitImagesInViewport","positionFromTop","resizeDuration","showImageNumberLabel","wrapAround","prototype","imageCountLabel","currentImageNum","totalImages","replace","enable","build","self","on","event","start","currentTarget","appendTo","$lightbox","$overlay","$outerContainer","find","$container","containerTopPadding","parseInt","css","containerRightPadding","containerBottomPadding","containerLeftPadding","hide","end","target","attr","changeImage","length","$link","addToAlbum","push","link","title","$window","window","proxy","sizeOverlay","visibility","$links","imageNumber","dataLightboxValue","prop","i","j","top","scrollTop","left","scrollLeft","fadeIn","disableKeyboardNav","$image","addClass","preloader","Image","onload","$preloader","imageHeight","imageWidth","maxImageHeight","maxImageWidth","windowHeight","windowWidth","width","height","maxWidth","maxHeight","sizeContainer","src","document","postResize","newWidth","newHeight","showImage","oldWidth","outerWidth","oldHeight","outerHeight","animate","stop","updateNav","updateDetails","preloadNeighboringImages","enableKeyboardNav","alwaysShowNav","createEvent","e","show","html","undefined","open","location","href","labelText","text","removeClass","preloadNext","preloadPrev","keyboardAction","off","KEYCODE_ESC","KEYCODE_LEFTARROW","KEYCODE_RIGHTARROW","keycode","keyCode","key","String","fromCharCode","toLowerCase","match","fadeOut"],"mappings":"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"} \ No newline at end of file