// $start && $(window).scrollTop() < $end) { var $ratio = ($(window).scrollTop() - $start) / (($end - $start) / 100); console.log('SCROLL : ' + $(window).scrollTop() + ' / START : ' + $start + ' / END : ' + $end + ' / RATIO : ' + $ratio); $top = $from + (($distance / 100) * $ratio); } else if($(window).scrollTop() >= $end) { var $ratio = 100; $top = $to; } var $opacity = $ratio / 100; $sticky.css({ 'top' : $top + 'px', 'opacity': $opacity }); } layout.stickyBrand.init = function(){ var $brand = $('.brand:visible'); var $sticky = $('.brand-sticky'); $sticky.find('img').css({ 'height' : $brand.find('.logo').height() - (parseInt($sticky.css('padding-top').replace('px', ''), 10) + parseInt($sticky.css('padding-bottom').replace('px', ''), 10)) }); var $stickyH = $sticky.outerHeight(); $sticky.css({ 'top' : -Math.abs($stickyH) + 'px', 'left' : $brand.find('.logo').offset().left + 'px' }) .data({ 'from': -Math.abs($stickyH), 'start': $brand.offset().top + $brand.outerHeight(), 'end': ($brand.offset().top + $brand.outerHeight()) * 2 }); layout.stickyBrand(); }*/ layout.stickyBrand = function(){ var $logo = $('.brand:visible').find('.logo'); var $sticky = $('.brand-sticky'); $sticky .css({ 'top' : $logo.offset().top + 'px', 'left' : $logo.offset().left + 'px' }); $logo.filter(':visible').css({ 'visibility' : 'hidden' }); } layout.opacityScroll = function(){ $('.view').find('> .media-list[data-display="progressive"]').find('.media').each(function(){ var oTop = $(this).offset().top; var oHeight = $(this).outerHeight(); var wTop = $(window).scrollTop(); var wHeight = $(window).height(); if(oTop < wTop + wHeight) { var diff = ((wTop + wHeight - oTop) / oHeight); if (diff > 1) diff = 1; else if (diff < 0) diff = 0; $(this).css('opacity', diff); } }); } layout.fixHeader = function(){ if($('#header').is(':visible') && !$('#header').hasClass('above')) { $('#header').css({ 'height': $('#header-container').outerHeight() + 'px' }) .find('#header-container:not(.fixed)') .addClass('fixed'); $('#header-container').find('> header-search-form').find('[name="q"]').css({ 'height': $('#header-container').innerHeight() }); } } layout.adjustCover = function(){ var $wrapper = $('#cover-wrapper'); var $wrapperY = $wrapper.offset().top; var $wrapperW = $wrapper.width(); var $wrapperH = $wrapper.height(); var $wrapperO = $wrapperW > $wrapperH ? 'l' : $wrapperW == $wrapperH ? 's' : 'p'; var $coverY = $wrapper.is('[data-fixed]') && window.matchMedia('(min-width: 992px)').matches ? $wrapperY : 0; var $coverW = $wrapper.data('cover-width'); var $coverH = $wrapper.data('cover-height'); var $coverO = $wrapper.data('cover-orientation'); var $coverSrc = $wrapper.data('cover-src'); var $scale = ($coverO == 'p' && ($coverH > $wrapperH)) || ($coverO != 'p' && ($coverW > $wrapperW)); if($scale) { var $scaleTo = ($coverO == 'p' && ($coverH > $wrapperH)) ? $wrapperH / $coverH : $wrapperW / $coverW; if($coverO == 'p' && ($coverH > $wrapperH)) { if(($coverW * $scaleTo) < $wrapperW) { var $tempScaleTo = $wrapperW / $coverW; } } else if($coverO != 'p' && ($coverW > $wrapperW)) { if(($coverH * $scaleTo) < $wrapperH) { var $tempScaleTo = $wrapperH / $coverH; } } $scaleTo = $tempScaleTo < 1 ? $tempScaleTo : $scaleTo; $coverW = $coverW * $scaleTo; $coverH = $coverH * $scaleTo; $wrapper.css({ 'background-size' : $coverW + 'px ' + $coverH + 'px' }); } else { $wrapper.css({ 'background-size' : '' }); } if($wrapper.is('[data-fixed]') && window.matchMedia('(min-width: 992px)').matches) { $coverY = $coverY + (($wrapperH - $coverH) / 2); $wrapper.css({ 'background-position' : '50% ' + $coverY + 'px' }); } else { $wrapper.css({ 'background-position' : '' }); } } layout.fixMenu = function(){ var $wrapper = $('#menu-wrapper'); var $menu = $('#menu'); var $vertical = $wrapper.hasClass('vertical'); if(window.matchMedia("(min-width: 992px)").matches && ($(window).scrollTop() >= $menu.data('from') && ($menu.data('from') != $menu.data('to')))) { $menu.css({ 'top': $(window).scrollTop() < $menu.data('to') ? $menu.data('top') : -Math.abs($(window).scrollTop() - $menu.data('to')) + $menu.data('top') }); $menu.css({ 'width': $menu.data('width'), 'height': $vertical ? $menu.data('height') : '' }) .filter(':not(.fixed)').addClass('fixed'); } else if($menu.hasClass('fixed')) { $menu.css({ 'top': '', 'width': '', 'height': '' }) .removeClass('fixed'); } }; layout.fixMenu.init = function(){ var $wrapper = $('#menu-wrapper'); var $menu = $('#menu'); var $vertical = $wrapper.hasClass('vertical'); var $above = !$vertical && $wrapper.hasClass('above'); var $width = $vertical ? $wrapper.innerWidth() : '100%'; //var $height = $vertical || $above ? 0 : $menu.outerHeight(); var $height = $above || window.matchMedia("(max-width: 991px)").matches ? '' : $vertical ? $(window).height() : $menu.outerHeight(); //if(window.matchMedia("(min-width: 992px)").matches) if(window.matchMedia("(min-width: 992px)").matches && $vertical) { //if($vertical) //{ $menu.find('.nav:visible').each(function(){ var $subMenuHeight = 0; $(this).find('> li:visible').each(function(){ $subMenuHeight += $(this).outerHeight(); }); $height = $subMenuHeight > $height ? $subMenuHeight : $height; }); //} //$wrapper.css('min-height', $height != 0 ? $height : ''); } //else //{ //$wrapper.css('min-height', ''); //} $wrapper.css('min-height', $height); var $top = $('#header-container:visible.fixed').length ? $('#header-container').outerHeight() : 0; var $from = $('#header-container:visible.fixed').length ? $wrapper.offset().top - $('#header-container').outerHeight() : $wrapper.offset().top; var $to = $vertical ? ($from + $('#wrapper').outerHeight()) - $height : $(document).outerHeight() - ($top + ($height * 2)); $menu.data({ 'from': $from, 'to': $to, 'top': $top, 'width': $width, 'height': $height }); layout.fixMenu(); }; layout.fixSidebar = function(){ $sidebar = $('#sidebar'); $inner = $('#sidebar-inner'); if(window.matchMedia("(min-width: 992px)").matches && ($(window).scrollTop() >= $sidebar.data('from') && ($sidebar.data('from') != $sidebar.data('to')))) { $inner.css({ 'top': $(window).scrollTop() < $sidebar.data('to') ? $sidebar.data('top') : -Math.abs($(window).scrollTop() - $sidebar.data('to')) + $sidebar.data('top') }); if(!$inner.hasClass('fixed')) { $inner.css({ 'width': $sidebar.data('width'), 'left': $sidebar.data('left') }) .addClass('fixed'); } } else if($inner.hasClass('fixed')) { $inner.css({ 'top': '', 'left': '', 'width': '' }) .removeClass('fixed'); } }; layout.fixSidebar.init = function(){ var $wrapper = $('#sidebar'); var $top = $('#header-container.fixed').length ? $('#header-container').outerHeight() + parseInt($('#sidebar').css('padding-top').replace('px', ''), 10) : parseInt($('#sidebar').css('padding-top').replace('px', ''), 10); $top += $('#menu').outerHeight(); var $left = $('#sidebar').offset().left + parseInt($('#sidebar').css('border-left').replace('px', ''), 10) + parseInt($('#sidebar').css('padding-left').replace('px', ''), 10); var $from = $('#header-container.fixed').length ? $('#sidebar').offset().top - $('#header-container').outerHeight() : $('#sidebar').offset().top; $from -= $('#menu').outerHeight(); $wrapper.css('min-height', ''); var $to = ($from + $('#sidebar').innerHeight()) - ($('#sidebar-inner').outerHeight() + (parseInt($('#sidebar').css('padding-top').replace('px', ''), 10) * 2)); $('#sidebar').data({ 'from': $from, 'to': $to, 'top': $top, 'left': $left, 'width': $('#sidebar').width() }); var $minHeight = $('#sidebar').outerHeight() > $wrapper.height() ? $('#sidebar').outerHeight() : $wrapper.height(); $wrapper.css('min-height', $minHeight); layout.fixSidebar(); }; //https://osvaldas.info/image-lightbox-responsive-touch-friendly var lightbox = {}; lightbox.activityIndicatorOn = function(){ $('
' + d + '
'); $(this).find('.media-content').remove(); }); } //MEDIAS $('.media-list').find('.media').each(function(){ var $list = $(this).parent('.media-list'); /*Clickable*/ var $link = $(this).find('.media-object').find('a').length != 0 ? $(this).find('.media-object').find('a') : $(this).find('.media-heading').find('a'); if($link.length != 0) { var $only = $(this).find('a').not('[href="' + $link.attr('href') + '"]').not(':hidden').length == 0 ? true : false; if($only && !$link.hasClass('fancybox') && $.isMobile()) { $(this).clickable({ classname: 'pointer', target: $link.attr('href') }); } } /*Details*/ if($(this).find('.media-content:not(:empty)').length && ($list.is('[data-details]') && $list.attr('data-details') != 'hide')) { var $mediaObject = $(this).find('.media-object'); var $details = ' '; var $overlay = $mediaObject.find('a').prepend('').find('.media-overlay'); $overlay.html($details); } }); }); $(window).on({ 'load' : function(){ //OPACITY EFFECT $('.fadeIn').delay(1000).removeClass('fadeIn'); //ANCHOR if(window.location.hash) { var anchor = window.location.hash.substring(1); if($('#' + anchor).length) { var to = $('#header.fixed').length == 1 ? $('#' + anchor).offset().top - $('#header.fixed').outerHeight() : $('#' + anchor).offset().top; to = $('#header').next().is('#menu-wrapper.horizontal') ? to - $('#menu-wrapper.horizontal').outerHeight() : to; $('html, body').animate({ scrollTop: to - 20 }, 240); } } //DROPDOWNS ANIMATION /*$('#wrapper').find('[data-toggle="dropdown"]').each(function(){ $(this).dropdown('reset').dropdown({ animation: 'slide' }); });*/ //HEADER /* Fix */ layout.fixHeader(); /* Cart */ if($('.quick-access-btn[data-content="cart"]').length) { //Set cart buttons $('.quick-access-btn[data-content="cart"]').find('.quick-access-tooltip').find('.btn[href$="/cart"]').addClass('btn-primary').removeClass('btn-default'); //Cart count $('.quick-access-btn[data-content="cart"]').on('on.cart.updated', function(){ var $nbProducts = $(this).find('[name="cart_count"]').val() === undefined ? 0 : $(this).find('[name="cart_count"]').val(); $('.badge[data-role="total_nb_products"]').each(function(){ $(this).text($nbProducts).removeClass(function(){ return $nbProducts > 0 ? 'hide' : '' }) .addClass(function(){ return $nbProducts === 0 ? 'hide' : '' }); }); if($('#sidebar').length) setTimeout(layout.fixSidebar.init, 1000); }) .trigger('on.cart.updated'); } //MENU if($('#menu').length) { if($('#carousel-wrapper').find('.carousel[data-thumbnails]').length) { $('#carousel-wrapper').find('.carousel[data-thumbnails]').on('on.thumbnailsLoaded.carousel', function(){ layout.fixMenu.init(); }); } else { layout.fixMenu.init(); } } if($('#cover-wrapper').length) { if($('#cover-wrapper').find('[data-widget="image"]').length) { if($('#cover-wrapper').find('[data-widget="image"]').find('a').length) { $('#cover-wrapper').find('[data-widget="image"]').find('a').unwrap(); } else { $('#cover-wrapper').find('[data-widget="image"]').find('img').unwrap().unwrap(); } //$('#cover-wrapper').find('[data-widget="image"]').find('img').unwrap().unwrap(); } var $coverWrapper = $('#cover-wrapper'); var $coverImg = $coverWrapper.find('img:not(.logo)'); var $coverW = $coverImg.get(0).naturalWidth; var $coverH = $coverImg.get(0).naturalHeight; var $coverSrc = $coverImg.attr('src'); var $coverO = $coverW > $coverH ? 'l' : $coverW == $coverH ? 's' : 'p'; $coverWrapper.data({ 'cover-width' : $coverW, 'cover-height' : $coverH, 'cover-orientation' : $coverO }).css({ 'background-image': 'url(' + $coverSrc + ')'/*, 'height': function(){ return $coverWrapper.is('[data-height]') ? $coverWrapper.attr('data-height') + 'vh' : '' }*/ }); //$coverImg.filter(':not([data-height]) img').css('visibility', 'hidden'); $coverImg.filter('[data-height] img').remove(); layout.adjustCover(); } //SIDEBAR if($('#sidebar').length) { if($('#carousel-wrapper').find('.carousel[data-thumbnails]').length) { $('#carousel-wrapper').find('.carousel[data-thumbnails]').on('on.thumbnailsLoaded.carousel', function(){ layout.fixSidebar.init(); }); } else { layout.fixSidebar.init(); } $('#sidebar').find('.widget-content.collapse').on('on.shown.collapse', function(){ layout.fixSidebar.init(); }); } }, 'resize' : function(){ //MASONRY $('.media-list.masonry').masonry('layout'); //HEADER layout.fixHeader(); //MENU if($('#menu').length) { layout.fixMenu.init(); } //COVER if($('#cover-wrapper').length) { layout.adjustCover(); } //SIDEBAR if($('#sidebar').length) layout.fixSidebar.init(); }, 'scroll' : function(){ //SCROLLTOP if($(this).scrollTop() > 100) $('#scrollToTop').fadeIn(); else $('#scrollToTop').fadeOut(); //OPACITY SCROLL layout.opacityScroll(); //MENU if($('#menu').length) { layout.fixMenu(); } //COVER FIXED if($('#cover-wrapper').length) { layout.adjustCover(); } //SIDEBAR if($('#sidebar').length) { layout.fixSidebar(); } } }); // ]]>