XylotrechusZ
/*
this prevents dom flickering for elements hidden with js, needs to be outside of dom.ready event.also adds several extra classes for better browser support
this is a separate file that needs to be loaded at the top of the page. other js functions are loaded before the closing body tag to make the site render faster
*/
"use strict";
var avia_is_mobile = false;
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && 'ontouchstart' in document.documentElement)
{
avia_is_mobile = true;
document.documentElement.className += ' avia_mobile ';
}
else
{
document.documentElement.className += ' avia_desktop ';
}
document.documentElement.className += ' js_active ';
(function()
{
//set transform property
var prefix = [ '-webkit-', '-moz-', '-ms-', '' ],
transform = '',
transform2d = false,
transform3d = false;
for( var i in prefix )
{
// http://artsy.github.io/blog/2012/10/18/so-you-want-to-do-a-css3-3d-transform/
if( prefix[i] + 'transform' in document.documentElement.style )
{
transform2d = true;
transform = prefix[i] + 'transform';
}
if( prefix[i] + 'perspective' in document.documentElement.style )
{
transform3d = true;
}
}
if( transform2d )
{
document.documentElement.className += ' avia_transform ';
}
if( transform3d )
{
document.documentElement.className += ' avia_transform3d ';
}
//set parallax position to prevent jump at pageload
if( typeof document.getElementsByClassName == 'function' && typeof document.documentElement.getBoundingClientRect == "function" && avia_is_mobile == false )
{
if( transform && window.innerHeight > 0 )
{
setTimeout( function()
{
var y = 0,
offsets = {},
transY = 0,
parallax = document.getElementsByClassName( "av-parallax" ),
winTop = window.pageYOffset || document.documentElement.scrollTop;
for( y = 0; y < parallax.length; y++ )
{
parallax[y].style.top = "0px";
offsets = parallax[y].getBoundingClientRect();
transY = Math.ceil( (window.innerHeight + winTop - offsets.top) * 0.3 );
parallax[y].style[transform] = "translate(0px, " + transY + "px)";
parallax[y].style.top = "auto";
parallax[y].className += ' enabled-parallax ';
}
}, 50);
}
}
})();