(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"); });

bathrooms are more than utilitarian spaces

just take a peek at some of these master retreats...



A GLAMOROUS RETREAT (pictured above & below): In this updated master bathroom we swapped an unused morning bar in favor of a makeup vanity space. We utilized a high-end Ann Saks mosaic with a peacock motif inset into the Carrara field tile. This goes with the Carrara marble moldings in the shower and niche behind the bath tub. While the space is still nearly neutral, we leveraged a subtle blue palette to create a calming feel in the homeowner’s space to remind her of the ocean view in her Naples vacation home. PHOTOS BY MARTIN VECCHIO


SERENE & CLASSIC BATH IN BIRMINGHAM (pictured above and below):  In a household with three young boys, things can get a bit chaotic. The homeowners looked to us to create a master bath that would act more as a calm retreat than a utilitarian space. Carrara marble and subtle blue undertones began to set the stage for this serene space. Additional wainscoting and pivot mirrors provided unique elements that added a classic, elegant and timeless feel to the space. A large drop-in tub was removed and replaced with a lighter freestanding tub that allowed room to enlarge the shower. PHOTOS BY BETH SINGER