Last active
March 10, 2019 08:39
-
-
Save dokxpi/09031da54e9715979bb99d1c77bc3f2e to your computer and use it in GitHub Desktop.
Вставка галереи на сайт из альбомов vk.com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style>.pagination div{text-align:center;float:left;margin:0 20px 15px 0;} | |
.pagination div a{padding-top:2px;width:25px;height:25px;display:block;} | |
.pagination .prev a,.pagination .next a{width:auto;} | |
.pagination div a:hover,.pagination div a.active{color:#FFF;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAvRJREFUeNqsls1qGzEQx2e066+U0lPAYLBfwcWlfYKcXNoXKKXQntKPQF6g9JxTP659iBpyyhMkYGrIvRQTg8GnnGyvd1f9z0hyNjVumtiCiWKt9v/TzEg7YvP2N/2jlWF7sGewDqwOa8BGsDGsD+vBTrJvrWSdCK+BRMT0Go8/oa+7mbw6y1rfC9B+RP8dsOxmCFMTgj/wX5sMhL2xQIocKwz8yQtGNMDg8+xra1iUNAVxWW0HdkqRaVMJzlRi4iqsViLaKRHvlInvlbXX3xjX55gn8/U9vB+9H3ZWPXGABuwnJu5yCezYEJcj7SkGMPJehYaV2wyrTxGdNCeb+H6RE2X5BB49zL40Rw7yTiBchsApBNvsPaAK+rKs0MgKHYS9WY2Vg2QQXQgkJZpnZOcpQAocYCFPAEpifcnwAVbbZhEW96slD4nUi6u8hLha5XDIhXij3qOXxcwYM7I2xg8w+YjNh2ENE35h9XWNscQ/xFlCFpIfAI7hM+/DpqBcvaAZPJkunM3TCbxsxRDqYsX1kGAHgRfBg793VXAmAPGcjfXeFra6C+kuum7MCvEhAmgJCDm4qXmQY0Zkqw6godSc2W6MUHUk/lRxIboV4BqM5QgriCrkQ6gb4HGM3dRUT8J2NXcAFEESMsmlnBvZnUnWMDhEDyici2gDQAGkOrJg0YW+wY9LloFoTZJvDQmhA0wPsrk02KIjMmY7gGLYNHR6BEYGOeiTZ2wcqoI3KiX5gT5Q3Lsa3WJzq5b+2GBPH2PDTZa1YVtN9VS3Z/BZmFJOR25sWwDPgG5yeH9q9NDk+WeMnm/NG/dJOVddTY182NI8wfF/igeTjb3RiEAHevP9WuIg8u2XQpPmQ+tA4w29GIvO/E1pWYKN9QXHF5ozKTSYOLgjQAvV/FV0dr3GizgqmtYBqWppNoSrj/DCvr/2/E8b63y8N3tphqu3lcML0opYkwvCSj3BIO9hu4d7V8Pfvcb+7tVHDnoAnMxe8Np71x8BBgDyNk2kVfsDXQAAAABJRU5ErkJggg==) 0 0 no-repeat;} | |
.pagination .prev a:hover,.pagination .next a:hover{width:auto;color:#1982d1;background:none;} | |
#lbOverlay{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background-color:#000;cursor:pointer;} | |
#lbCenter,#lbBottomContainer{position:absolute;z-index:9999;overflow:hidden;background-color:#fff;} | |
.lbLoading{background:#fff url(data:image/gif;base64,R0lGODlhHwAfANUAAP///5qamiYmJuTk5Ly8vMzMzKqqqrCwsKKioujo6NTU1Pb29qioqKCgoK6urtLS0tzc3NjY2Li4uObm5nBwcMbGxmhoaEZGRkhISDIyMvj4+Pr6+lBQUDY2NsTExFZWVpKSkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAHwAfAAAG/0CAcEhMPAgOBKDDoQQKxKh0CJEErleAYLu1HDRT6YCALWu5XEolPIwYymY0GmNgAxrwuJybCUcaAHlYZ3sCdxFRA28BgVgHBQMLAAkeIB9ojQYDRGSDAQwKYRsIF4ZlBFR5AJt2a3kQQlZlDBN2QxMMcBKTeaG2Qwp5RnAHv1EHcEdwUMZDBXBIcKzNq3BJcJLUAAtwStrNCNjf3GUIDtLfA9adWMzUz6cPxN/IZQ8JvdTBcAkAsli0jOHSJQSCqmlhNr0awo7RJ19TFORqdAXVEEVZyjyKtG1AgXoZA2iK8oeiKkFZGiCaggelSTiA2LhxidLASjZjBL2siNBOFQ84LyXA+mYEiRJzBO7ZCQIAIfkEAQoAIQAsEAAAAA8ADwAABldAhIPwSISOyGRguZRAAEkkc0oYREPTqSESzU4bXe8ylDEgF4PCYRoSCDCVKEDBCLTdAormasXjD1chFRd+AhaBIQiFAgWBGx+FdoEghRSIHoUciAmFHUEAIfkEAQoAIQAsFgAFAAkAFQAABlnAkDDUiAyHgYBhcEwmCQCh0wkJTRjTgESoyAYSIcAh+xAWsgThIOsQLrKIo1yYENjtHaHnbucIQXwCFCEbH4EBIQiBAgUVF4EWQosHQ3wUGkd2GBVzGQZDQQAh+QQBCgAhACwQABAADwAPAAAGWcCQcChcBI5HBJE4QB4dy2HBGSBEQ4AD9XFVUAOJ6IRBlUQroS+EuEFcBGkkARBKeEAfgR5+NAyEe4F6IQ0RQ4KBGUuIehgGi4gUaJB7FgcaVx0cFAEFV0NBACH5BAEKACEALAUAFgAVAAkAAAZUwJAwVBkajYOjUHBBbJQhgIIROAqugg/IkwgtBoVDYFxdYs+CEHk9DmXQZzWb3DBg4Ff53BAhUvB6awRJQhoHFmiBARIQAFAFARQcHSEIDgQPXUZBACH5BAEKACEALAAAEAAPAA8AAAZZwI5gOEyEjsgjhzj0JJMUpgD0RAakn001VJAKENuQRXqpbA/e0KCqiRJDAYYC8KxghvCA/lAYLJAGGXl6hHpPDYWJTxEGiYRVAwSOAVsAEBKKYSEJDwQOCEEAIfkEAQoAIQAsAAAFAAkAFQAABlnAkNCQERpDFYxAcNRQlkvjAQoVWqiCS6WAFSBCAexnE3pSQUIO1iPsYBPHuBARqNcXQoe9PhAS9gEFQg+ABwAhCYABCkISgAwTIRCKQgB/dkcDBnVyEQ1HQQAh+QQBCgAhACwAAAAADwAPAAAGWMCQcEgsBCicDnGoOVgEUOgyVKFEr0sD5oolZrjdUKQRAkeFA0MgUI5+QJ5ECEBYr8sXxIYIsdupUxJ+AQwTUwmDAQpTIQ+DBwCMdX4FjCEOgwOWCIMLlkEAOw==) no-repeat center;} | |
#lbImage{position:absolute;left:0;top:0;border:10px solid #fff;background-repeat:no-repeat;} | |
#lbPrevLink,#lbNextLink{display:block;position:absolute;top:0;width:50%;outline:none;} | |
#lbPrevLink{left:0;} | |
#lbPrevLink:hover{background:transparent url(data:image/gif;base64,R0lGODlhPwAgAMQaALGxsYSEhNLS0v39/WJiYm1tbenp6dzc3MfHx7q6upqamo+Pj6Wlpby8vN3d3Xl5efT09OXl5bu7u9ra2v7+/ra2tvv7+8zMzFdXV////zMzMwAAAAAAAAAAAAAAAAAAACH5BAEAABoALAAAAAA/ACAAAAXwYCaOZGmeaKqamra+cPy6cm3feK7vfO//wKBwSCwaj8jkDoBpYh4IkbO5cGQE06ZAgWmQGhhAkKkAMAgYQwZTAJgJhCsm4HYbHE9SID3GCEQIYWsBIwx+WGIlD3wZBhgLQkx/GYFicyMLaYgmYIlMUX1lZ3wYBAEBBZdYBaenIhAEBSIFspFOpqClAWgAEHKsrSNcDpVDkiaXZCKbJngMXGq2kySXGalqzCYPqZDGfsiEcoRYdHXTYBig0uCYh1mCr7FK8/T1IhETB/r7+gP2KxcqJBhIMIEEC/9UUBjAsGHDhBAjSpxIseIQGhZTtAgBADs=) no-repeat 0 15%;} | |
#lbNextLink{right:0;} | |
#lbNextLink:hover{background:transparent url(data:image/gif;base64,R0lGODlhPwAgAMQcAHp6eqqqqs7OzmFhYfPz89DQ0MLCwtvb221tbZ6enpycnFVVVYaGhra2tufn59bW1oeHh8/Pz76+vvr6+sHBwZKSkvn5+d/f383NzXJycklJSf///zMzMwAAAAAAAAAAACH5BAEAABwALAAAAAA/ACAAAAXfIMdtZGmeaKquLDq2cCzPdG3feK7vfO//wKBwSCwaj8igRsMwATSk53IJ2DA0gVJAU9lOpwIfuPSMYgPoxoYw0Bw2jsWAIFAoMhqI3SFuz82AKAIaVU9hWhqHP4RbCYFlKQlMGo4mW4piVQiJG5BPAKAAaiRsGn+WnECEGwemBJ6EoaOsY6iYPasbjbAqCAsHcgS2SlUkmwtQncknW1mNw6rFtEtmaNa0CCWbipfEqMlSXwTbJYOn3Unp6ukTEQXv8O8YF+stFhQG+fr5Eg/1/wADChxIsOCLgjBEIIQRAgA7) no-repeat 100% 15%;} | |
#lbBottom{font-family:Verdana, Arial, Geneva, Helvetica, sans-serif;font-size:10px;color:#666;line-height:1.4em;text-align:left;border:10px solid #fff;border-top-style:none;} | |
#lbCloseLink{display:block;float:right;width:66px;height:22px;background:transparent url(data:image/gif;base64,R0lGODdhQgAWAO4AAP7+/v///3p6etvb28DAwMHBwZ2dnVlZWdLS0oODg6+vr/X19eTk5IyMjLi4uFBQUJSUlFRUVFZWVtzc3MnJyVJSUlhYWFFRUVNTU+zs7FVVVf39/erq6vb29szMzN3d3Xt7e2BgYFdXV6Kiovr6+qampk9PT0xMTPf392ZmZl9fX+Dg4EtLS97e3qGhofz8/PDw8Ovr6/v7+7W1tWxsbJWVlXh4eMrKys3NzXl5efHx8WRkZFpaWufn5+/v77Ozs7GxsePj44eHh2lpaU5OTnNzc01NTZaWlmdnZ3x8fOXl5WNjY5KSkqmpqYiIiN/f37m5ubS0tHBwcIaGhmVlZe3t7XZ2dm1tbZiYmJeXl25ubm9vb46OjtXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAQgAWAAAH/4ABgoOEhYaHiImKi4yNjo+MAJKTlJWWl5eQAS+NmJ6fmJGSATJYXQGWAR4GJKigr6CiAChZJzsfrgCCOConRx2UGQMMsAAMw5cLAwO6i6M/LAcYVAOuqiERBydNkggNAuANCAAEAsyVBAngAgkElA7rCTcBBevrg6McAiYHD0hPgjyowHCAyBQYACgIaEBhAIUECsiZq6RAAAQEAxBAEBBRooKMJTrQ41igZAF8+UA8OBCBxgoc2A4YEYICVYIECybllHhOEgMBBioZmDiUkqB6Ew4ZzQCCn4Yr2Cw8cCISwAAB7iyV68mz0lUHACo62HlUQFJDlQLESFLhgAQRB/8qcKkpaeslu5OKWgIKIIM6ASUYlK1hoLADlEZhWNFwwEKEEa0m4UU3Ma+AS3wBLCDwzexIwoYRTwrgYwtjlhB0TUKA9W5lSfDGUWKdVTLHkWcLpV1RJJsGCXFdbHC14OZOYzknW81smZjmSUBxKx3dgsYFaUNSSLBQYcRwSQoZOkzQYDNHAuiZVbyYcSPYsOxLCDhZT4HJAlUEUU9x/YGNIDdIsN0FwrniTTzjlGNPVums00BtDYJz2Ej2eGbNBylUwMMDIHAgCBQCWnDBCC9Qcoxzr5x4yTI5RRLABEus5F8MqAgywwUiiMBCFMX0mIozAegAQQUmCOChUTNg8IAwFB/46OQozugiAxM5ZJALlEBoocSVT8IiSwAkVHXJBj1w2eUrsjTjiX5n+phmj4EAADs=) no-repeat center;outline:none;margin:5px 0;} | |
#lbCaption,#lbNumber{margin-right:71px;} | |
#lbCaption{font-weight:bold;} | |
.pic-thumb,.album h2{display:none;} | |
</style> | |
<!-- <script src="https://cdn.rawgit.com/dokxpi/jquery.EmbedVkGallery/master/js/jquery.slimbox2.js"></script> --> | |
<script language="JavaScript"> | |
/*! | |
Slimbox v2.05 - The ultimate lightweight Lightbox clone for jQuery | |
(c) 2007-2013 Christophe Beyls <http://www.digitalia.be> | |
MIT-style license. | |
*/ | |
(function(w){var E=w(window),u,f,F=-1,n,x,D,v,y,L,r,m=!window.XMLHttpRequest,s=[],l=document.documentElement,k={},t=new Image(),J=new Image(),H,a,g,p,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('<div id="lbOverlay" />').click(C)[0],a=w('<div id="lbCenter" />')[0],G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));g=w('<div id="lbImage" />').appendTo(a).append(p=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(e)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').click(C)[0],A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+(E.height()/2);L=u.initialWidth;r=u.initialHeight;w(a).css({top:Math.max(0,y-(r/2)),width:L,height:r,marginLeft:-L/2}).show();v=m||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();j(1);f=O;u.loop=u.loop&&(f.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q<R;++Q){if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}return w.slimbox(T,U,M)})};function z(){var N=E.scrollLeft(),M=E.width();w([a,G]).css("left",N+(M/2));if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}}function j(M){if(M){w("object").add(m?"select":"embed").each(function(O,P){s[O]=[P,P.style.visibility];P.style.visibility="hidden"})}else{w.each(s,function(O,P){P[0].style.visibility=P[1]});s=[]}var N=M?"bind":"unbind";E[N]("scroll resize",z);w(document)[N]("keydown",o)}function o(O){var N=O.which,M=w.inArray;return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?e():(M(N,u.previousKeys)>=0)?B():null}function B(){return b(x)}function e(){return b(D)}function b(M){if(M>=0){F=M;n=f[F][0];x=(F||(u.loop?f.length:0))-1;D=((F+1)%f.length)||(u.loop?0:-1);q();a.className="lbLoading";k=new Image();k.onload=i;k.src=n}return false}function i(){a.className="";w(g).css({backgroundImage:"url("+n+")",visibility:"hidden",display:""});w(p).width(k.width);w([p,I,d]).height(k.height);w(A).html(f[F][1]||"");w(K).html((((f.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,f.length));if(x>=0){t.src=f[x][0]}if(D>=0){J.src=f[D][0]}L=g.offsetWidth;r=g.offsetHeight;var M=Math.max(0,y-(r/2));if(a.offsetHeight!=r){w(a).animate({height:r,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+r,marginLeft:-L/2,visibility:"hidden",display:""});w(g).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,h)})}function h(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function q(){k.onload=null;k.src=t.src=J.src=n;w([a,g,c]).stop(true);w([I,d,g,G]).hide()}function C(){if(F>=0){q();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,j)}return false}})(jQuery); | |
// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED) | |
if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) { | |
jQuery(function($) { | |
$("a[rel^='lightbox']").slimbox({/* Put custom options here */}, null, function(el) { | |
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel)); | |
}); | |
}); | |
} | |
</script> | |
<!-- <script src="https://cdn.rawgit.com/dokxpi/jquery.EmbedVkGallery/master/js/jquery.embedvkgallery.js"></script> --> | |
<script language="JavaScript"> | |
(function($) { | |
$(function() { | |
var nps = 'EmbedVkGallery'; | |
$[nps] = { | |
/** | |
* Can be [s,m,x,o,p,q,y,z,w] | |
* Look into https://vk.com/dev/photo_sizes | |
*/ | |
full_image_size: 'x', | |
width: 100, | |
margin: 4, | |
static: 0, /* functionality hasn't been implemented yet */ | |
height: 0, /* functionality hasn't been implemented yet */ | |
rev: 1, | |
shuffle: 0, | |
limit: 0, | |
link: '', | |
link_mapper: function(el){ | |
return [ | |
el.href, | |
'<a href="'+el.href+'">'+el.title+'</a>' | |
] | |
} | |
}; | |
function getRandomInt(min, max) { | |
return Math.floor(Math.random() * (max - min + 1)) + min; | |
} | |
function embedVkGalleryCompareRandom(a, b) { | |
return Math.random() - 0.5; | |
} | |
$.fn[nps] = function(opts) { | |
opts = opts || {}; | |
opts = (typeof(opts) !== 'object' ) ? {link:opts} : opts; | |
var localOpts = $.extend({}, $[nps], opts), | |
json; | |
function showAlbum() { | |
var $this = $(this), | |
$array_for_promises = [], | |
$loader_block, | |
$loader_blinding_block, | |
gallerySetName = 'gallerySetName' + +new Date(), | |
meta_opts = $.extend({}, localOpts, $this.data()), | |
res = /(-?\d+)_(\d+)/g.exec(meta_opts.link); | |
if (!res || res.length < 3) {return;} | |
$loader_blinding_block = $('<span/>', {text: '...'}); | |
$loader_block = $('<div/>', { | |
text: 'Загрузка фотографий, пожалуйста подождите', | |
style: 'text-align: center; padding: 20px 20px;', | |
'class': 'jquery-embedvkgallery-loader-block' | |
}); | |
$loader_block.append($loader_blinding_block); | |
$this.append($loader_block); | |
setInterval(function() { | |
$loader_blinding_block.fadeOut(500).fadeIn(500); | |
}, 1000); | |
/** | |
* photo_sizes=1 returns special formats | |
* https://vk.com/dev/photo_sizes | |
*/ | |
var query = 'https://embedvkgallery.help-master.net/vkgallery.php?&photo_sizes=1&extended=1&album_id=' + res[2] | |
+ '&count=1000' | |
+ '&owner_id=' + res[1] | |
+ '&rev=' + meta_opts.rev | |
/** | |
* Version of VK API | |
*/ | |
+ '&v=5.62&callback=?'; | |
if (meta_opts.width < 0) {return;} | |
meta_opts.height = meta_opts.width - (meta_opts.width / 2 ^ 0); | |
function resize($img) { | |
var $div = $img.closest('div'), | |
d_h = $div.height(), | |
d_w = $div.width(), | |
i_h = $img.height(), | |
i_w = $img.width(); | |
var max = d_h > d_w ? d_h : d_w; | |
if (i_h > i_w) { $img.width(max); } else { $img.height(max); } | |
return $img; | |
} | |
function getCountRows(count, width, parentWidth) { | |
var min = parentWidth / width ^ 0, | |
result = []; | |
if (count <= min) { | |
return [count]; | |
} else { | |
while (count > 0) { | |
if ((count - min) > min) { | |
result[result.length] = min; | |
} else { | |
result[result.length] = count / 2 ^ 0; | |
result[result.length] = count - result[result.length - 1]; | |
count = 0; | |
} | |
count -= result[result.length - 1]; | |
} | |
} | |
for (var i = 0; i < result.length; i++) { | |
if (i % 2 === 0) { | |
if (i <= (result.length-2)) { | |
if (result[i] > 3 && result[i+1] > 3) { | |
var max = (result[i] / 3 ^ 0) < (result[i+1] / 3 ^ 0) ? | |
result[i] / 3 ^ 0 : result[i + 1] / 3 ^ 0, | |
plusOrMinus = Math.random() < 0.5 ? -1 : 1, | |
a = getRandomInt(1, max) * plusOrMinus; | |
result[i] += a; | |
result[i + 1] -= a; | |
} | |
} | |
} | |
} | |
return result; | |
} | |
function expanding($row) { | |
var $divs = $('div', $row), | |
totalWidth = $divs.length * meta_opts.margin, | |
diff, | |
newWidth, | |
newHeight; | |
$divs.each(function() { | |
totalWidth += $(this).data('newWidth'); | |
}); | |
totalWidth = totalWidth ^ 0; | |
var a = (totalWidth > $this.width()) ? -1 : 1; | |
while ( totalWidth !== $this.width() ) { | |
diff = ($this.width() - totalWidth ^ 0 ) / $divs.length ^ 0; | |
diff = Math.abs(diff); | |
if (diff > 2) { a *= diff; } | |
$divs.each(function() { | |
newWidth = $(this).data('newWidth') + a; | |
$(this).data({ newWidth: newWidth }); | |
totalWidth += a; | |
return (totalWidth !== $this.width()); | |
}); | |
newHeight = $divs.eq(0).data('newHeight') + a; | |
$divs.data('newHeight', newHeight); | |
a = (totalWidth > $this.width()) ? -1 : 1; | |
} | |
$divs.each(function() { | |
$(this).css({ | |
width: $(this).data('newWidth'), | |
height: $(this).data('newHeight'), | |
float: 'left', | |
marginRight: meta_opts.margin + 'px', | |
marginTop: meta_opts.margin + 'px', | |
boxSizing: 'border-box', | |
overflow: 'hidden' | |
}); | |
var $def = $.Deferred(); | |
$array_for_promises.push($def); | |
var $a = $('<a/>', { | |
href: $(this).data('maxSrc'), | |
rel: gallerySetName, | |
'class': 'embedvkgallery_link', | |
'data-lightbox': gallerySetName, | |
title: $(this).data('text') | |
}), | |
$img = $('<img/>', { | |
src: $(this).data('src'), | |
'class': 'embedvkgallery_img' | |
}) | |
.css({ margin: 0, display: 'none' }) | |
.one('load', function() { | |
resize( $(this) ); | |
$def.resolve(); | |
}) | |
.on('error', function() { | |
$def.resolve(); | |
}); | |
$a.append($img).appendTo( $(this) ); | |
}); | |
return $row; | |
} | |
function addSlider($elem) { | |
if ($.fn.slimbox){ | |
$('a', $elem).slimbox({}, meta_opts.link_mapper); | |
} else if ($.fn.swipebox) { | |
$('a.embedvkgallery_link', $elem).swipebox({}, meta_opts.link_mapper); | |
} | |
} | |
function renderAlbumList(data) { | |
if (data.response && data.response.count > 0) { | |
/** | |
* Shuffle array if `shuffle` = 1 | |
*/ | |
if (+meta_opts.shuffle) { | |
data.response.items.sort(embedVkGalleryCompareRandom); | |
} | |
/** | |
* Slice array by option LIMIT | |
*/ | |
if (meta_opts.limit && +meta_opts.limit && meta_opts.limit < data.response.count) { | |
data.response.items.length = meta_opts.limit; | |
data.response.count = data.response.items.length; | |
} | |
json = data; | |
var arr = getCountRows(data.response.count, meta_opts.width, $this.width()), | |
sizes = 2, | |
item = 0; | |
for (var i = 0; i < arr.length; i++) { | |
var $row = $('<div/>'); | |
for (var j = 0; j < arr[i]; j++) { | |
var c_height = data.response.items[item].sizes[sizes].height, | |
c_width = data.response.items[item].sizes[sizes].width, | |
newWidth = c_width * meta_opts.height / c_height ^ 0, | |
maxSrc, | |
grepResults; | |
/** | |
* Finding the maxSrc url which we need | |
*/ | |
grepResults = $.grep(data.response.items[item].sizes, function(size) { | |
return size.type == localOpts.full_image_size; | |
}); | |
if ( ! grepResults || ! grepResults.length ) { | |
grepResults = $.grep(data.response.items[item].sizes, function(size) { | |
return size.type == 'm'; | |
}); | |
if ( ! grepResults || ! grepResults.length ) { | |
grepResults = $.grep(data.response.items[item].sizes, function(size) { | |
return size.type == 's'; | |
}); | |
} | |
} | |
if ( ! grepResults || ! grepResults.length ) { | |
continue; | |
} | |
maxSrc = grepResults[0].src; | |
$('<div/>').data({ | |
newHeight: meta_opts.height, | |
newWidth: newWidth, | |
src: data.response.items[item].sizes[sizes].src, | |
text: data.response.items[item].text, | |
maxSrc: maxSrc | |
}).appendTo($row); | |
item++; | |
} | |
expanding($row).appendTo($this); | |
addSlider($this); | |
} | |
$.when.apply(null, $array_for_promises).done(function() { | |
$loader_block.hide('slow'); | |
$this.find('.embedvkgallery_img').fadeIn('slow'); | |
}); | |
} else { | |
$this.text('Album not found'); | |
} | |
} | |
function filterCollection(data) { | |
if (data.response) { | |
$this.text('Album not found'); | |
return false; | |
} | |
} | |
/** | |
* Get Album data from VK | |
*/ | |
if (!json) { | |
$.getJSON(query, renderAlbumList) | |
.fail(function() { | |
$loader_block.html('Ошибка загрузки фотографий :('); | |
}); | |
} else { | |
renderAlbumList(json); | |
} | |
} | |
return this.each(showAlbum); | |
}; | |
}); | |
})(jQuery); | |
</script> | |
<!-- {"error":{"error_code":8,"error_msg":"Invalid request: v (version) is required","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"photos.get"},{"key":"","value":""}]}} --><!--vkgallery.php--> | |
<div align="center"> | |
<div style="padding:0 8px 0 8px;"><p align="left"> | |
Мастерская "tokarprofi" (<strong>токарная мастерская</strong>) изготовит по вашим чертежам, требованиям и пожеланиям <strong>токарные</strong>, <strong>фрезерные</strong>, сверлильные, <strong>зубофрезерные</strong>, координатно-расточные и сварочные работы любой сложности. Хороший парк станков. Доставка по всей Украине (самовывоз из г. Одесса ).</p> | |
<div id="btext2" align="left">Для расчёта стоимости изделия и сроков изготовления, вышлите чертеж, фотографию образца или эскиз необходимого изделия в ватсап, вайбер <a rel="nofollow" href="tel:+380632983380"><i class='fa fa-phone-square'> </i>(063) 298-33-80</a> или на наш электронный адрес <a rel="nofollow" href="mailto:sales@tokarprofi.com">sales@tokarprofi.com</a>. Ждем ваших заказов!<br/></div><div style="clear:both;"></div></div> | |
<div class="pagination"> | |
<div><a class="active" href="javascript:SwitchTab('tb_1', 'content_1');" id="tb_1" class="active">1</a></div> | |
<div><a href="javascript:SwitchTab('tb_2', 'content_2');" id="tb_2">2</a></div> | |
<div><a href="javascript:SwitchTab('tb_3', 'content_3');" id="tb_3">3</a></div> | |
</div><div style='clear: both;'></div> | |
<div id="content_1"> | |
<!-- паказываем альбом (загружается всегда первый) --> | |
<div data-link="http://vk.com/album-137090999_242074991" id="vk1" style="width: 570px;" data-width="141" class="p embedvkgallery"></div> | |
</div> | |
<div id="content_2" style="display:none;"> | |
<!-- прячем первый альбом и показываем второй --> | |
<div data-link="http://vk.com/album-137090999_242065048" id="vk2" style="width: 570px;" data-width="141" class="p embedvkgallery"></div> | |
</div> | |
<div id="content_3" style="display:none;"> | |
<!-- прячем первый альбом и показываем второй --> | |
<div data-link="http://vk.com/album-137090999_241274051" id="vk3" style="width: 570px;" data-width="142" class="p embedvkgallery"></div> | |
</div> | |
</div> | |
<script> | |
function SwitchTab(my_tab, my_content) { | |
var div_content = document.getElementById(my_content); | |
document.getElementById('content_1').style.display = 'none'; | |
document.getElementById('content_2').style.display = 'none'; | |
document.getElementById('content_3').style.display = 'none'; | |
div_content.style.display = 'block'; | |
document.getElementById('tb_1').className = ''; | |
document.getElementById('tb_2').className = ''; | |
document.getElementById('tb_3').className = ''; | |
document.getElementById(my_tab).className = 'active'; | |
/** | |
Сначала ищем в нужной нам вкладке див с классом embedvkgallery. | |
Потом скприт сам возьмет ссылку из data-link атрибута. | |
*/ | |
jQuery(div_content).find('.embedvkgallery').each(function() { | |
var $this = jQuery(this); | |
// если вкладка открывается впервый раз - внутри не будет картинок. | |
// тогда загружаем альбом из ВК | |
if (! $this.find('img').length ) { | |
$this.EmbedVkGallery(); | |
} | |
}); | |
} | |
(function($) { | |
$(function() { | |
// Первоночально загружаем картинки в первый див | |
$('#vk1').EmbedVkGallery(); | |
}); | |
})(window.jQuery); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment