File: /home/jairicem/basalehglobal.ng/wp-content/themes/porto/js/appearanimate.js
( function( $ ) {
window.theme = window.theme || {};
if ( typeof window.theme.animation_support == 'undefined' ) {
theme.animation_support = !window.jQuery( 'html' ).hasClass( 'no-csstransitions' );
theme.getOptions = function( opts ) {
if ( typeof ( opts ) == 'object' ) {
return opts;
} else if ( typeof ( opts ) == 'string' ) {
try {
return JSON.parse( opts.replace( /'/g, '"' ).replace( ';', '' ) );
} catch ( e ) {
return {};
}
} else {
return {};
}
}
theme.execPluginFunction = function( functionName, context ) {
var args = Array.prototype.slice.call( arguments, 2 );
var namespaces = functionName.split( "." );
var func = namespaces.pop();
for ( var i = 0; i < namespaces.length; i++ ) {
context = context[namespaces[i]];
}
return context[func].apply( context, args );
}
theme.mergeOptions = function( obj1, obj2 ) {
var obj3 = {};
for ( var attrname in obj1 ) { obj3[attrname] = obj1[attrname]; }
for ( var attrname in obj2 ) { obj3[attrname] = obj2[attrname]; }
return obj3;
}
theme.dynIntObsInit = function( selector, functionName, pluginDefaults ) {
var $el;
if ( typeof selector == 'string' ) {
$el = document.querySelectorAll( selector );
} else {
$el = selector;
}
Array.prototype.forEach.call( $el, function( obj ) {
var $this = $( obj ),
opts;
if ( $this.data( 'observer-init' ) ) {
return;
}
var pluginOptions = theme.getOptions( $this.data( 'plugin-options' ) );
if ( pluginOptions )
opts = pluginOptions;
var mergedPluginDefaults = theme.mergeOptions( pluginDefaults, opts )
var intersectionObserverOptions = {
rootMargin: '0px 0px 200px 0px',
thresholds: 0
}
if ( mergedPluginDefaults.accY ) {
intersectionObserverOptions.rootMargin = '0px 0px ' + Number( mergedPluginDefaults.accY ) + 'px 0px';
}
var observer = new IntersectionObserver( function( entries ) {
for ( var i = 0; i < entries.length; i++ ) {
var entry = entries[i];
if ( entry.intersectionRatio > 0 ) {
theme.execPluginFunction( functionName, $this, mergedPluginDefaults );
// Unobserve
observer.unobserve( entry.target );
}
}
}, intersectionObserverOptions );
observer.observe( obj );
$this.data( 'observer-init', true );
} );
}
}
} )( window.jQuery );
// Animate
( function( theme, $ ) {
'use strict';
theme = theme || {};
var instanceName = '__animate';
var Animate = function( $el, opts ) {
return this.initialize( $el, opts );
};
Animate.defaults = {
accX: 0,
accY: -120,
delay: 1,
duration: 1000
};
Animate.prototype = {
initialize: function( $el, opts ) {
if ( $el.data( instanceName ) ) {
return this;
}
this.$el = $el;
this
.setData()
.setOptions( opts )
.build();
return this;
},
setData: function() {
this.$el.data( instanceName, true );
return this;
},
setOptions: function( opts ) {
this.options = $.extend( true, {}, Animate.defaults, opts, {
wrapper: this.$el
} );
return this;
},
build: function() {
var self = this,
$el = this.options.wrapper,
delay = 0,
duration = 0;
if ( $el.data( 'appear-animation-svg' ) ) {
$el.find( '[data-appear-animation]' ).each( function() {
var $this = $( this ),
opts;
var pluginOptions = theme.getOptions( $this.data( 'plugin-options' ) );
if ( pluginOptions )
opts = pluginOptions;
$this.themeAnimate( opts );
} );
return this;
}
$el.addClass( 'appear-animation' );
var el_obj = $el.get( 0 );
delay = Math.abs( $el.data( 'appear-animation-delay' ) ? $el.data( 'appear-animation-delay' ) : self.options.delay );
duration = Math.abs( $el.data( 'appear-animation-duration' ) ? $el.data( 'appear-animation-duration' ) : self.options.duration );
if ( 'undefined' !== typeof $el.data( 'appear-animation' ) && $el.data( 'appear-animation' ).includes( 'revealDir' ) ) {
if ( delay > 1 ) {
el_obj.style.setProperty( '--porto-reveal-animation-delay', delay + 'ms' );
}
if ( duration != 1000 ) {
el_obj.style.setProperty( '--porto-reveal-animation-duration', duration + 'ms' );
}
if ( $el.data( 'animation-reveal-clr' ) ) {
el_obj.style.setProperty( '--porto-reveal-clr', $el.data( 'animation-reveal-clr' ) );
}
} else {
if ( delay > 1 ) {
el_obj.style.animationDelay = delay + 'ms';
}
if ( duration != 1000 ) {
el_obj.style.animationDuration = duration + 'ms';
}
}
/*if ( $el.find( '.porto-lazyload:not(.lazy-load-loaded)' ).length ) {
$el.find( '.porto-lazyload:not(.lazy-load-loaded)' ).trigger( 'appear' );
}*/
$el.addClass( $el.data( 'appear-animation' ) + ' appear-animation-visible' );
return this;
}
};
// expose to scope
$.extend( theme, {
Animate: Animate
} );
// jquery plugin
$.fn.themeAnimate = function( opts ) {
return this.map( function() {
var $this = $( this );
if ( $this.data( instanceName ) ) {
return $this;
} else {
return new theme.Animate( $this, opts );
}
} );
};
} ).apply( this, [window.theme, jQuery] );
( function( theme, $ ) {
theme = theme || {};
var funcAnimate = function( $wrap, wrapObj ) {
// Animate
if ( $.fn.themeAnimate && typeof wrapObj != 'undefined' ) {
$( function() {
var svgAnimates = wrapObj.querySelectorAll( 'svg [data-appear-animation]' );
if ( svgAnimates.length ) {
$( svgAnimates ).closest( 'svg' ).attr( 'data-appear-animation-svg', '1' );
}
var $animates = wrapObj.querySelectorAll( '[data-plugin-animate], [data-appear-animation], [data-appear-animation-svg]' );
if ( $animates.length ) {
var animateResize = function() {
if ( window.innerWidth < 768 ) {
window.removeEventListener( 'resize', animateResize );
$animates.forEach( function( o ) {
o.classList.add( 'appear-animation-visible' );
} );
}
};
if ( theme.animation_support ) {
window.addEventListener( 'resize', animateResize );
theme.dynIntObsInit( $animates, 'themeAnimate', theme.Animate.defaults );
} else {
$animates.forEach( function( o ) {
o.classList.add( 'appear-animation-visible' );
} );
}
}
} );
}
}
funcAnimate( '', document.body );
$( document.body ).on( 'porto_after_async_init', function( e, $wrap, wrapObj ) {
if ( theme.isAsyncInit != -1 ) { // not initial
funcAnimate( $wrap, wrapObj );
}
} );
} ).apply( this, [window.theme, jQuery] );