/* * Author: Digital Zoom Studio * Website: http://digitalzoomstudio.net/ * Portfolio: http://codecanyon.net/user/ZoomIt/portfolio * * Version: 1.40 * */ "use strict"; window.dzsprx_module_self_options = {}; if(window.dzsprx_module_features_ids){ }else{ window.dzsprx_module_features_ids = []; } (function($) { $.fn.dzsprx_features = function(o) { var defaults = { settings_mode : 'scroll' // scroll or mouse or mouse_body ,init_functional_delay: "0" // -- a delay on which to start the parallax movement ,init_functional_remove_delay_on_scroll: "off" // -- remove the delay on which to start the parallax movement , js_breakout: 'off' // -- if on it will try to breakout of the container and cover fullwidth ,settings_makeFunctional: false } if(typeof o =='undefined'){ if(typeof $(this).attr('data-options')!='undefined' && $(this).attr('data-options')!=''){ var aux = $(this).attr('data-options'); aux = 'dzsprx_module_self_options = ' + aux; eval(aux); o = dzsprx_module_self_options; } } o = $.extend(defaults, o); Math.easeIn = function(t, b, c, d) { return -c *(t/=d)*(t-2) + b; }; Math.easeOutQuad = function (t, b, c, d) { t /= d; return -c * t*(t-2) + b; }; Math.easeInOutSine = function (t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; }; this.each( function(){ var cthis = $(this); var _descsCon = null ,_featImgsCon = null ,_responsiveCon = null ,_colContainer = null ,_blackOverlay = null ,_fadeouttarget = null ; var nritems = 0 ,tobeloaded=0 ; var i =0; var tw = 0 ,th = 0 ,ch = 0 ,tw = 0 ,cw = 0 ,ww = 0 ,wh = 0 ,st=0 ,st_rel = 0 ,initialheight = 0 ; var started = false ,is_fixed = false // -- switch to know if going to is_fixed mode ,is_stage_width = false// -- if it's the same width as the window, then no need for special adaptations ,sw_suspend_functional = false ,stop_enter_frame = false ; var init_delay = 0 ,init_functional_delay = 0 ; var api_outer_update_func = null ; var $descs = [] ,$feat_imgs = [] ; var descs_offsets = [] ,feat_imgs_arr_widths = [] ; var descs_len = 0 ; init_delay = Number(o.init_delay); init_functional_delay = Number(o.init_functional_delay); if(init_delay){ setTimeout(init, init_delay); }else{ init(); } function init(){ if (o.settings_makeFunctional == true) { var allowed = false; var url = document.URL; var urlStart = url.indexOf("://") + 3; var urlEnd = url.indexOf("/", urlStart); var domain = url.substring(urlStart, urlEnd); //console.log(domain); if (domain.indexOf('l') > -1 && domain.indexOf('c') > -1 && domain.indexOf('o') > -1 && domain.indexOf('l') > -1 && domain.indexOf('a') > -1 && domain.indexOf('h') > -1) { allowed = true; } if (domain.indexOf('d') > -1 && domain.indexOf('i') > -1 && domain.indexOf('g') > -1 && domain.indexOf('d') > -1 && domain.indexOf('z') > -1 && domain.indexOf('s') > -1) { allowed = true; } if (domain.indexOf('o') > -1 && domain.indexOf('z') > -1 && domain.indexOf('e') > -1 && domain.indexOf('h') > -1 && domain.indexOf('t') > -1) { allowed = true; } if (domain.indexOf('e') > -1 && domain.indexOf('v') > -1 && domain.indexOf('n') > -1 && domain.indexOf('a') > -1 && domain.indexOf('t') > -1) { allowed = true; } if (allowed == false) { return; } } // console.info('init() , wha', cthis); init_start(); } function init_start(){ if(started){ return; } started = true; // console.log('init_start()'); //console.info(is_ie, is_ie(), version_ie(), is_ie11()); if(is_ie11()){ cthis.addClass('is-ie-11'); } _colContainer = cthis.find('.dzsprx-features-container .dzs-colcontainer').eq(0); if(cthis.children('.descs-con').length==0){ _colContainer.append('
'); } if(cthis.children('.feat-imgs-con').length==0){ _colContainer.append('
'); } _descsCon = cthis.find('.descs-con').eq(0); _featImgsCon = cthis.find('.feat-imgs-con').eq(0); // console.info(cthis.children('.feat-img')); cthis.children('.feat-img').each(function(){ var _t = $(this); // console.info(_t); _featImgsCon.append(_t); }) cthis.children('.desc-block').each(function(){ var _t = $(this); _descsCon.append(_t); }) $descs = _descsCon.children('.desc-block'); $feat_imgs = _featImgsCon.children('.feat-img'); //console.info($descs) descs_len = $descs.length; // -- responsive con construction if(cthis.children('.responsive-con').length==0){ cthis.append('
'); _responsiveCon = cthis.children('.responsive-con').eq(0); var aux_resp_text = ''; aux_resp_text = '
'; aux_resp_text+='
'; aux_resp_text+='
'; aux_resp_text +='
'; aux_resp_text +='
'; aux_resp_text+='
'; $descs.each(function(){ var _t = $(this); aux_resp_text+='
'+_t.html()+'
'; }) aux_resp_text+='
'; _responsiveCon.append(aux_resp_text); if(window.dzsas_init){ window.dzsas_init(_responsiveCon.find('.advancedscroller'),{ init_each:true }) } } // -- responsive con construction END //$(window).unbind('resize',handle_resize); $(window).bind('resize',handle_resize); handle_resize(); //console.info(animator_objects_arr); if(init_functional_delay){ sw_suspend_functional = true; //console.info('CEVA'); setTimeout(function(){ sw_suspend_functional = false; },init_functional_delay) } cthis.get(0).api_set_update_func = function(arg){ api_outer_update_func = arg; } cthis.get(0).api_handle_scroll = handle_scroll; cthis.get(0).api_destroy = destroy; if(o.settings_mode == 'scroll'){ $(window).unbind('scroll',handle_scroll); $(window).bind('scroll',handle_scroll); handle_scroll(); setTimeout(handle_scroll,1000); } } function destroy(){ api_outer_update_func = null; stop_enter_frame = true; } function handle_resize(){ wh = $(window).height(); ww = $(window).width(); if(o.js_breakout=='on'){ cthis.css('width',ww+'px'); cthis.css('margin-left','0'); //console.info(cthis, cthis.get(0).offsetLeft, cthis.offset().left, _theTarget.offset().left) if(cthis.offset().left>0){ cthis.css('margin-left','-'+cthis.offset().left+'px'); } } cw=cthis.width(); if(started===false){ return; } if(cw<600){ cthis.addClass('responsive-mode'); }else{ cthis.removeClass('responsive-mode'); } var i23 = 0; $descs.each(function(){ var _t = $(this); var aux23 = (wh/2 - _t.outerHeight()/2); _t.css({ 'padding-top' : aux23+'px' }); //console.info() if($descs.index(_t)==descs_len-1){ //console.info(_t); _t.css({ 'padding-bottom' : aux23+'px' }) } descs_offsets[i23]=_t.offset().top-parseInt(_t.css('padding-top'),10); i23++; }) } function calculate_dims(){ } function handle_mousemove(e){ } function handle_scroll(e, pargs){ //console.info('handle_scroll', e, $(window).scrollTop()); st = $(window).scrollTop(); //_theTarget.css('transform','translate3d(0,'+vi_y+'px,0)'); st_rel = st - cthis.offset().top; var aux_st_rel = st_rel; if(aux_st_rel<0){ aux_st_rel = 0; } is_stage_width = true; // console.info(cthis.width(), ww); if(cthis.width()!=ww){ is_stage_width = false; } $feat_imgs.css({ //aux94 + 'px' 'width':'' ,'right':'' ,'left':'' }); cthis.removeClass('feat-img-is-fixed'); if(st>cthis.offset().top){ is_fixed = true; if(st+wh>cthis.offset().top + cthis.outerHeight()){ is_fixed = false; } }else{ is_fixed = false; } if(cthis.hasClass('feat-img-is-fixed')==false) { var i90 = 0; $feat_imgs.each(function () { var _t = $(this); feat_imgs_arr_widths[i90] = _t.width(); i90++; }) } // console.log(feat_imgs_arr_widths); if(is_fixed){ cthis.addClass('feat-img-is-fixed'); }else{ cthis.removeClass('feat-img-is-fixed'); } //if(aux_st_rel>) //console.info(st, aux_st_rel, wh, descs_offsets,cthis.offset().top,cthis.outerHeight()); var sw_ind = 0; var i24 = 0; $descs.each(function(){ var _t = $(this); var _t_pt = parseInt(_t.css('padding-top'),10); if($descs.index(_t)==0){ //console.info(_t,(_t.offset().top + _t_pt - st ),wh-100,(wh-(_t.offset().top + _t_pt - st + _t.height()/2))); } if(_t.offset().top + _t_pt - st < 100){ _t.css({ 'opacity' : (_t.offset().top + _t_pt - st)/100 }); }else{ if(_t.offset().top + _t_pt - st > wh-100){ _t.css({ 'opacity' : (wh-(_t.offset().top + _t_pt - st + _t.height()/2))/100 }); }else{ _t.css({ 'opacity' : 1 }); } } if(st>descs_offsets[i24]+100){ sw_ind = i24; } var aux93 = (wh/2 - $feat_imgs.eq(i24).height()/2); var aux94 = (aux_st_rel+(wh/2 - $feat_imgs.eq(i24).height()/2)); if(aux94>cthis.outerHeight()-wh/2-$feat_imgs.eq(i24).height()/2){ aux94=cthis.outerHeight()-wh/2-$feat_imgs.eq(i24).height()/2; } //console.info(is_fixed); if(is_fixed==false){ if(is_stage_width==false){ $feat_imgs.eq(i24).css({ 'width':'' ,'right':'' ,'left':'' }); } $feat_imgs.eq(i24).css({ 'top': aux94 + 'px' //aux94 + 'px' }); }else{ if(is_stage_width==false){ $feat_imgs.eq(i24).css({ 'width':feat_imgs_arr_widths[i24]+15 ,'right':'50%' ,'left':'auto' }); aux93 = (wh/2 - $feat_imgs.eq(i24).height()/2); } $feat_imgs.eq(i24).css({ 'top': aux93+'px' }); } i24++; }); $feat_imgs.removeClass('feat-img--active'); $feat_imgs.eq(sw_ind).addClass('feat-img--active'); } function handle_frame(){ requestAnimFrame(handle_frame); } }) } window.dzsprx_features_init = function(selector, settings) { if(typeof(settings)!="undefined" && typeof(settings.init_each)!="undefined" && settings.init_each==true ){ var element_count = 0; for (var i3 in settings) { element_count++; } if(element_count==1){ settings = undefined; } $(selector).each(function(){ var _t = $(this); _t.dzsprx_features(settings) }); }else{ $(selector).dzsprx_features(settings); } }; })(jQuery); function is_touch_device() { return !!('ontouchstart' in window); } window.requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); }; })(); function is_ie() { var ua = window.navigator.userAgent; //console.info(ua); var msie = ua.indexOf('MSIE '); if (msie > 0) { // IE 10 or older => return version number return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); } var trident = ua.indexOf('Trident/'); if (trident > 0) { // IE 11 => return version number var rv = ua.indexOf('rv:'); return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); } var edge = ua.indexOf('Edge/'); if (edge > 0) { // IE 12 => return version number return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); } // other browser return false; } ; function is_ie11(){ return !(window.ActiveXObject) && "ActiveXObject" in window; } function version_ie() { return parseFloat(navigator.appVersion.split("MSIE")[1]); } ; jQuery(document).ready(function($){ dzsprx_features_init('.dzsparallaxer-features.auto-init', {init_each: true}); });