-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjphotogrid.min.js
executable file
·14 lines (14 loc) · 2.06 KB
/
jphotogrid.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
* Copyright (C) 2010 Joel Sutherland
* Licenced under the MIT license
* http://www.newmediacampaigns.com/page/zoomable-jquery-image-gallery-jphotogrid
*/
(function($){$.fn.jphotogrid=function(settings,callback){settings=$.extend(true,{activeClass:'active',selectedClass:'selected',baseCSS:{},selectedCSS:{}},settings);var url=settings.flickrbase+settings.feedapi+'?';var first=true;function toAbsolute(el){$(el).children().each(function(){var pos=$(this).position();$(this).data('ptop',Math.floor(Number(pos.top))+'px');$(this).data('pleft',Math.floor(Number(pos.left))+'px');}).each(function(){placeOriginal(this);});}
function placeOriginal(el,animate,callback){var dtop=$(el).data('ptop');var dleft=$(el).data('pleft');var props=$.extend({top:dtop,left:dleft},settings.baseCSS);if(animate){$(el).animate(props,'slow',function(){if($.isFunction(callback))callback();});}
else{$(el).css($.extend(props,{position:'absolute'}));}}
function hideSelected(callback){$container.find('.'+settings.selectedClass).each(function(){$(this).removeClass(settings.selectedClass);placeOriginal(this,true);});if($.isFunction(callback))callback();}
function select(el){hideSelected(function(){$(el).addClass('selected').removeClass('active');$(el).animate(settings.selectedCSS,'slow');});}
for(var key in settings.qstrings){if(!first)
url+='&';url+=key+'='+settings.qstrings[key];first=false;}
return $(this).each(function(){$container=$(this);$(this).css('position','relative');toAbsolute(this);$(this).children().css('cursor','pointer').hover(function(){if(!$(this).hasClass(settings.selectedClass))
$(this).addClass(settings.activeClass);},function(){$(this).removeClass(settings.activeClass);});$('.'+settings.activeClass).live('click',function(){select(this);});$('.'+settings.selectedClass).live('click',function(){hideSelected();});$(this).find('div').hover(function(){$(this).css('opacity',0);},function(){$(this).css('opacity',.5);}).click(function(){$(this).css('opacity',0);$li=$(this).parent();$li.css("z-index",99);$li.animate({top:0,left:0,width:'100%',height:'400px'},'slow');});});}})(jQuery);