(function($){ $.fn.twentytwenty = function(options) { var options = $.extend({default_offset_pct: 0.5, orientation: 'horizontal'}, options); return this.each(function() { var sliderPct = options.default_offset_pct; var container = $(this); var stacked_gallery = $(this); var container = stacked_gallery.find(".sqs-gallery"); var sliderOrientation = options.orientation; var beforeDirection = (sliderOrientation === 'vertical') ? 'down' : 'left'; var afterDirection = (sliderOrientation === 'vertical') ? 'up' : 'right'; container.wrap("
"); container.append("
"); var beforeImg = container.find("img:first"); var afterImg = container.find("img:last"); var beforeImg = container.find(".image-wrapper:last"); var afterImg = container.find(".image-wrapper:first"); container.append("
"); var slider = container.find(".twentytwenty-handle"); slider.append(""); @@ -28,22 +35,23 @@ overlay.append("
"); var calcOffset = function(dimensionPct) { var w = beforeImg.width(); var h = beforeImg.height(); var img = beforeImg.find("img") var w = img.width(); var h = img.height(); return { w: w+"px", h: h+"px", cw: (dimensionPct*w)+"px", ch: (dimensionPct*h)+"px" }; }; }; var adjustContainer = function(offset) { if (sliderOrientation === 'vertical') { beforeImg.css("clip", "rect(0,"+offset.w+","+offset.ch+",0)"); beforeImg.find("img").css("clip", "rect(0,"+offset.w+","+offset.ch+",0)"); } else { beforeImg.css("clip", "rect(0,"+offset.cw+","+offset.h+",0)"); beforeImg.find("img").css("clip", "rect(0,"+offset.cw+","+offset.h+",0)"); } container.css("height", offset.h); }; @@ -71,8 +79,8 @@ container.addClass("active"); offsetX = container.offset().left; offsetY = container.offset().top; imgWidth = beforeImg.width(); imgHeight = beforeImg.height(); imgWidth = beforeImg.find("img").width(); imgHeight = beforeImg.find("img").height(); }); slider.on("moveend", function(e) { @@ -95,6 +103,15 @@ container.find("img").on("mousedown", function(event) { event.preventDefault(); }); //added this to fix an issue in Chrome where the webkit cached images wouldn't load before trying to read the size. Silly chrome. var imageLoaded = beforeImg.find("img"); $(imageLoaded).load(function() { setTimeout(function() { var offset = calcOffset(options.default_offset_pct); adjustContainer(offset); }, 0); }); $(window).trigger("resize.twentytwenty"); });

Current Projects

a small sampling of renderings and progress photos from some of our current projects

 

Check out our Instagram for more recent shots