/* globals jQuery, sowb */ var sowb = window.sowb || {}; sowb.SiteOriginSlider = function( $ ) { return { playSlideVideo: function( el ) { $( el ).find( 'video' ).each( function() { if( typeof this.play !== 'undefined' ) { this.play(); } } ); var embed = $( el ).find( 'iframe' ); if ( embed.length ) { // Vimeo embed[0].contentWindow.postMessage( '{"method":"play"}', "*" ); // YouTube embed[0].contentWindow.postMessage( '{"event":"command","func":"playVideo","args":""}', '*' ) } }, pauseSlideVideo: function( el ) { $( el ).find( 'video' ).each( function() { if( typeof this.pause !== 'undefined' ) { this.pause(); } } ); var embed = $( el ).find( 'iframe' ); if ( embed.length ) { // Vimeo embed[0].contentWindow.postMessage( '{"method":"pause"}', "*" ); // YouTube embed[0].contentWindow.postMessage( '{"event":"command","func":"pauseVideo","args":""}', '*' ) } }, enableBackground: function( el, background ) { el.css( 'background-image', background ); el.removeAttr( 'data-background' ); }, setupActiveSlide: function( slider, newActive, speed ) { // Start by setting up the active sentinel var sentinel = $( slider ).find( '.cycle-sentinel' ), active = $( newActive ), video = active.find( 'video.sow-background-element' ), $unmuteButton = $( slider ).prev(); // If this slide hasn't loaded its background, add it. var background = active.attr( 'data-background' ); if ( background !== undefined ) { this.enableBackground( active, background ); } // If the slider overlay hasn't loaded, set it up. var overlay = active.find( '.sow-slider-image-overlay' ); if ( overlay ) { var overlayBackground = overlay.attr( 'data-background' ); if ( overlayBackground !== undefined ) { this.enableBackground( overlay, overlayBackground ); } } if ( speed === undefined ) { sentinel.css( 'height', active.outerHeight() + 'px' ); } else { sentinel.animate( { height: active.outerHeight() }, speed ); } // Hide the unmute button as needed. if ( $unmuteButton.length ) { // Mute all slide videos. $( slider ).find( '.sow-slider-image > video' ).prop( 'muted', true ); var $activeSlideVideo; var $embed = $( slider ).find( '.sow-slide-video-oembed iframe' ); if ( $embed.length ) { $activeSlideVideo = $embed; } else { $activeSlideVideo = active.find( '> video' ); } if ( $activeSlideVideo.length ) { $unmuteButton.clearQueue().fadeIn( speed ); var settings = $unmuteButton.siblings( '.sow-slider-images' ).data( 'settings' ); // Unmute video if previously unmuted. if ( $activeSlideVideo.hasClass( 'sow-player-unmuted' ) ) { if ( ! $embed.length ) { $activeSlideVideo.prop( 'muted', false ); } else { $embed.contentWindow.postMessage( '{"event":"command","func":"unMute","args":""}', '*' ) } $unmuteButton.addClass( 'sow-player-unmuted' ); // Let screen readers know how to handle this button. $unmuteButton.attr( 'aria-label', settings.muteLoc ); } else { $unmuteButton.removeClass( 'sow-player-unmuted' ); $unmuteButton.attr( 'aria-label', settings.unmuteLoc ); } } else { $unmuteButton.clearQueue().fadeOut( speed ); } } if ( video.length ) { // Resize the video so it fits in the current slide var slideRatio = active.outerWidth() / active.outerHeight(), videoRatio = video.outerWidth() / video.outerHeight(); if ( slideRatio > videoRatio ) { video.css( { 'width' : '100%', 'height' : 'auto' } ); } else { video.css( { 'width' : 'auto', 'height' : '100%' } ); } video.css( { 'margin-left' : -Math.ceil( video.width() / 2 ), 'margin-top' : -Math.ceil( video.height() / 2 ) } ); } }, }; }; jQuery( function( $ ) { sowb.setupSliders = sowb.setupSlider = function() { var siteoriginSlider = new sowb.SiteOriginSlider( $ ); $( '.sow-slider-images' ).each( function() { var $$ = $( this ); if ( $$.data( 'initialized' ) ) { return $$; } var $p = $$.siblings( '.sow-slider-pagination' ); var $base = $$.closest( '.sow-slider-base' ); var $n = $base.find( '.sow-slide-nav' ); var $slides = $$.find( '.sow-slider-image' ); var settings = $$.data( 'settings' ); // Add mobile identifer to slider. if ( settings.breakpoint ) { $( window ).on( 'load resize', function() { if ( window.matchMedia( '(max-width: ' + settings.breakpoint + ')' ).matches ) { $base.addClass( 'sow-slider-is-mobile' ); } else { $base.removeClass( 'sow-slider-is-mobile' ); } } ); } $slides.each(function( index, el) { var $slide = $( el ); var urlData = $slide.data( 'url' ); if ( urlData !== undefined && urlData.hasOwnProperty( 'url' ) ) { $slide.on( 'click', function( event ) { event.preventDefault(); var sliderWindow = window.open( urlData.url, urlData.hasOwnProperty( 'new_window' ) && urlData.new_window ? '_blank' : '_self' ); sliderWindow.opener = null; } ); $slide.find( 'a' ).on( 'click', function( event ) { event.stopPropagation(); } ); } } ); var setupSlider = function() { // If we're inside a fittext wrapper, wait for it to complete, before setting up the slider. var fitTextWrapper = $$.closest( '.so-widget-fittext-wrapper' ); if ( fitTextWrapper.length > 0 && ! fitTextWrapper.data( 'fitTextDone' ) ) { fitTextWrapper.on('fitTextDone', function () { setupSlider(); } ); return; } var isLegacyParallax = $$.find( '.sow-slider-image-parallax[data-siteorigin-parallax]' ).length; var waitForParallax = false; if ( ! isLegacyParallax ) { var slidesWithModernParallax = $$.find( '.sow-slider-image-parallax:not([data-siteorigin-parallax])' ); if ( slidesWithModernParallax.length && typeof parallaxStyles != 'undefined' && ( ! parallaxStyles['disable-parallax-mobile'] || ! window.matchMedia( '(max-width: ' + parallaxStyles['mobile-breakpoint'] + ')' ).matches ) ) { waitForParallax = true; // Allow slider to be size itself while preventing visual "jump" in modern parallax. $base.css( 'opacity', 0 ); } } // Show everything for this slider $base.show(); var resizeFrames = function() { $$.find( '.sow-slider-image' ).each( function() { var $i = $( this ); $i.css( 'height', $i.find( '.sow-slider-image-wrapper' ).outerHeight() + 'px' ); } ); }; // Setup each of the slider frames $( window ).on('resize panelsStretchRows', resizeFrames ).trigger( 'resize' ); $( sowb ).on('setup_widgets', resizeFrames ); if ( ! isLegacyParallax && waitForParallax ) { // Wait for the parallax to finish setting up before // setting up the rest of the slider. if ( ! slidesWithModernParallax.find( '.simpleParallax' ).length ) { setTimeout( setupSlider, 50 ); return; } else { // Trigger resize to allow for parallax to work after showing Slider. window.dispatchEvent( new Event( 'resize' ) ); setTimeout( function() { $base.css( 'opacity', 1 ); }, 425 ); } } $$.trigger( 'slider_setup_before' ); // Set up the Cycle with videos $$ .on( { 'cycle-after' : function( event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag ) { var $$ = $( this ); siteoriginSlider.playSlideVideo( incomingSlideEl ); siteoriginSlider.setupActiveSlide( $$, incomingSlideEl ); $( incomingSlideEl ).trigger( 'sowSlideCycleAfter' ); }, 'cycle-before' : function( event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag ) { var $$ = $(this); $p.find( '> li' ).removeClass( 'sow-active' ).eq( optionHash.slideNum - 1 ).addClass( 'sow-active' ); siteoriginSlider.pauseSlideVideo( outgoingSlideEl ); siteoriginSlider.setupActiveSlide( $$, incomingSlideEl, optionHash.speed ); $( incomingSlideEl ).trigger( 'sowSlideCycleBefore' ); }, 'cycle-initialized' : function( event, optionHash ) { siteoriginSlider.playSlideVideo( $( this ).find( '.cycle-slide-active' ) ); siteoriginSlider.setupActiveSlide( $$, optionHash.slides[0] ); $p.find( '>li' ).removeClass( 'sow-active' ).eq( 0 ).addClass( 'sow-active' ); $( this ).find( '.cycle-slide-active' ).trigger( 'sowSlideInitial' ); if ( optionHash.slideCount <= 1 ) { // Special case when there is only one slide $p.hide(); $n.hide(); } $( window ).trigger( 'resize' ); setTimeout( function() { resizeFrames(); siteoriginSlider.setupActiveSlide( $$, optionHash.slides[0] ); // Ensure we keep auto-height functionality, but we don't want the duplicated content. $$.find( '.cycle-sentinel' ).empty(); }, 200 ); } } ) .cycle( { 'slides' : '> .sow-slider-image', 'speed' : settings.speed, 'timeout' : settings.timeout, 'swipe' : settings.swipe, 'paused' : settings.paused, 'pauseOnHover' : settings.pause_on_hover, 'swipe-fx' : 'scrollHorz', 'log' : false, } ) ; $$.find( 'video.sow-background-element' ).on( 'loadeddata', function() { siteoriginSlider.setupActiveSlide( $$, $$.find( '.cycle-slide-active' ) ); } ); // Set up showing and hiding navs $p.add( $n ).hide(); if ( $slides.length > 1 ) { if ( ! $base.hasClass( 'sow-slider-is-mobile' ) ) { if ( settings.nav_always_show_desktop && window.matchMedia( '(min-width: ' + settings.breakpoint + ')' ).matches ) { $p.show(); $n.show(); } else { var toHide = false; $base .on( 'mouseenter', function() { $p.add( $n ).clearQueue().fadeIn( 150 ); toHide = false; } ) .on( 'mouseleave', function() { toHide = true; setTimeout( function() { if ( toHide ) { $p.add( $n ).clearQueue().fadeOut( 150 ); } toHide = false; }, 750) ; } ); } } else if ( settings.nav_always_show_mobile && window.matchMedia( '(max-width: ' + settings.breakpoint + ')' ).matches ) { $p.show(); $n.show(); } } // Resize the sentinel when ever the window is resized, or when widgets are being set up. var setupActiveSlide = function() { siteoriginSlider.setupActiveSlide( $$, $$.find( '.cycle-slide-active' ) ); }; $( window ).on( 'resize', setupActiveSlide ); $( sowb ).on( 'setup_widgets', setupActiveSlide ); // Setup clicks on the pagination $p.find( '> li > a' ).on( 'click', function( e ) { e.preventDefault(); $$.cycle( 'goto', $( this ).data( 'goto' ) ); } ); // Clicking on the next and previous navigation buttons $n.find( '> a' ).on( 'click', function( e ) { e.preventDefault(); $$.cycle( $( this ).data( 'action' ) ); } ); $base.on( 'keyup', function( e ) { if ( e.key === 'ArrowLeft' ) { $$.cycle( 'prev' ); } else if ( e.key === 'ArrowRight' ) { $$.cycle( 'next' ); } else { return; } $base.trigger( 'focus' ); } ); if ( settings.unmute ) { $base.find( '.sow-player-controls-sound' ).on( 'click', function() { var $sc = $( this ), $activeSlideVideo, $embed = $sc.next().find( '.cycle-slide-active .sow-slide-video-oembed iframe' ); if ( $embed.length ) { $activeSlideVideo = $embed; } else { $activeSlideVideo = $sc.next().find( '.cycle-slide-active > video' ); } if ( $sc.hasClass( 'sow-player-unmuted' ) ) { $sc.removeClass( 'sow-player-unmuted' ); $activeSlideVideo.removeClass( 'sow-player-muted' ); $sc.attr( 'aria-label', settings.unmuteLoc ); if ( $embed.length ) { $embed[0].contentWindow.postMessage( '{"event":"command","func":"mute","args":""}', '*' ) } else { $activeSlideVideo.prop( 'muted', true ); } } else { // Used for changing the text/icon of mute button. $sc.addClass( 'sow-player-unmuted' ); // State tracking. $activeSlideVideo.addClass( 'sow-player-unmuted' ); // Let screen readers know how to handle this button. $sc.attr( 'aria-label', settings.muteLoc ); if ( $embed.length ) { $embed[0].contentWindow.postMessage( '{"event":"command","func":"unMute","args":""}', '*' ) } else { $activeSlideVideo.prop( 'muted', false ); } } } ); } }; $$.trigger( 'slider_setup_after' ); setupSlider(); if ( typeof $.fn.fitVids === 'function' ) { $$.find( '.sow-slide-video-oembed' ).fitVids(); } $$.data( 'initialized', true ); } ); }; sowb.setupSliders(); $( sowb ).on( 'setup_widgets', sowb.setupSliders ); } ); window.sowb = sowb; Our Process – Greenive Gifts
Skip to content Skip to footer
Top Services

Our Working Process in 3 Steps

Adipiscing elit, sed do euismod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim.

Discovery

Natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.

Design & Refine

Natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.

Implementation

Natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.
post31

We build
better products

stage 1

Client's Brief

Architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem lorem ipsum dol. Unde omnis iste natus error sit voluptatem accusantium dolorem que laudantium, totam rem ap. Adipiscing elit, sed do euismod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitaci.

stage 2

Planning & Design

Dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aut odit aut fugit, sed quia consequuntur magni.

post32
post33
stage 3

Project Fulfillment

Dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.
  • Adipiscing elit sed euismod
  • Tempor incidunt
  • Labore et dolore magna
Contact Us

Have questions? Get in touch!

Adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim.

785 15h Street, Office 478 Berlin

    Office

    GF1 Sarvam Complex,
    Next to SP Tata Showroom,
    Opposite Kanan Methodist Church,
    Old Channi Main Road
    Vadodara, Gujarat – 390002

    Socials
    Newsletter

    Designed by Tohu Bohu @ 2024. All Rights Reserved.