1 line
4.8 KiB
JavaScript
1 line
4.8 KiB
JavaScript
theme.Tabs=function(){function t(){this.selectors={elements:"[data-js-tabs]"},this.load()}t.prototype=$.extend({},t.prototype,{init:function(t){var e={singleOpen:!0,anim_tab_duration:function(){return 1e3*theme.animations.tabs.duration},anim_scroll_duration:function(){return 1e3*theme.animations.tabs.scroll_duration},toggleOnDesktop:!0,scrollToOpenMobile:!0,effect:"slide",offsetTop:".header__content.header__content--sticky"};(t=t||$(".js-tabs").not(".tabs--init")).hasClass("product-tabs")&&(e=$.extend(e,{goToTab:[{elem:".spr-badge-caption",tab:"reviews"}]})),t.ttTabs(e)},load:function(){$.fn.ttTabs=function(w){function t(t){var n=$(t),o=n.find("[data-js-tabs-head]"),c=n.find("[data-js-tabs-slider]"),r=n.find("[data-js-tabs-btn]"),d=n.find("[data-js-tabs-btn-mobile]"),f=n.find("[data-js-tabs-tab]"),l=n.find("[data-js-tabs-nav-prev]"),h=n.find("[data-js-tabs-nav-next]"),u=1024,b=n.attr("data-type"),g=void 0===w.scrollToOpenMobile||w.scrollToOpenMobile,k=void 0===w.singleOpen||w.singleOpen,v=void 0===w.toggleOnDesktop||w.toggleOnDesktop,p=void 0!==w.effect?w.effect:"slide",e=w.goToTab;function m(t,e){var i=e.effect||p,a={duration:w.anim_tab_duration(),complete:function(){$(this).removeAttr("style")}};function s(t){switch(i){case"toggle":t.hide().removeAttr("style");break;case"slide":t.velocity("slideUp",a);break;default:t.velocity("slideUp",a)}}if(e.desktop||k)r.removeClass("active"),s(f.filter(".active").removeClass("active").find("[data-js-tabs-content]").stop());else{var n=r.index(t);t.removeClass("active"),s(f.eq(n).removeClass("active").find("[data-js-tabs-content]").stop())}}function y(s,n){var t=r.index(s),o=f.eq(t),e=$(".js-sticky-sidebar"),d=n.effect||p,l={duration:w.anim_tab_duration(),progress:function(){theme.StickySidebar&&theme.StickySidebar.update(e)},complete:function(){n.after&&n.after(o),theme.StickySidebar&&theme.StickySidebar.update(e)}};s.addClass("active"),function(t){if(c.hasClass("slick-initialized")){var e=s.last().get(0).getBoundingClientRect().left,i=s.last().get(0).getBoundingClientRect().right,a=c.get(0).getBoundingClientRect().left;c.get(0).getBoundingClientRect().right<i?c.slick("slickNext"):e<a&&c.slick("slickPrev")}switch(d){case"toggle":t.show(),n.after&&n.after(o);break;case"slide":t.velocity("slideDown",l);break;default:t.velocity("slideDown",l)}}(o.addClass("active").find("> div").stop())}function C(t){var e=r.last().get(0).getBoundingClientRect().right,i=c.get(0).getBoundingClientRect().right;0===t?l.addClass("disabled"):l.removeClass("disabled"),e<=i?h.addClass("disabled"):h.removeClass("disabled")}function _(){c.hasClass("slick-initialized")&&($(c,l,h).off(),c.slick("unslick"),o.removeClass("tabs__head--slider"))}return r.on("click",function(t,a){var e=$(this),i=window.innerWidth,s=u<i;a="trigger"===a;if(e.hasClass("active")){if(s&&!v)return;m(e,{desktop:s})}else m(e,{desktop:s}),y(e,{desktop:s,after:function(t){if(!s&&!a&&g){var e=t.find("[data-js-tabs-btn-mobile]").offset().top,i=theme.StickyHeader&&theme.StickyHeader.$sticky?theme.StickyHeader.$sticky.stickyHeader("getStickyHeight"):0;$("html, body").velocity("stop").velocity("scroll",{offset:e-i,duration:w.anim_scroll_duration()})}}})}),d.on("click",function(){var t=$(this).parent(),e=f.index(t);r.eq(e).trigger("click")}),$.isArray(e)&&e.length&&$(e).each(function(){var e=this;$body.on("click",this.elem,function(t){return function(t){var e=window.innerWidth,i=u<e,a=r.filter('[data-tab="'+t+'"]');function s(){var t="horizontal"===b&&i?n.offset().top:d.eq(r.index(a)).offset().top,e=theme.StickyHeader&&theme.StickyHeader.$sticky?theme.StickyHeader.$sticky.stickyHeader("getStickyHeight"):0;$("html, body").velocity("scroll",{offset:t-e,duration:w.anim_scroll_duration()})}a.hasClass("active")?s():(m(a,{desktop:i,effect:"toggle"}),y(a,{desktop:i,effect:"toggle",after:function(){s()}}))}(e.tab,e.scrollTo,e.focus),t.preventDefault(),!1})}),"horizontal"===b&&$(window).on("theme.resize updateTabs",function(){var t=window.innerWidth,e=u<t,i=c.innerWidth(),a=0;if(r.each(function(){a+=$(this).innerWidth()}),e){var s=r.filter(".active");if(!k&&1<s.length){var n=s.first();m("",{desktop:e}),y(n,{desktop:e})}i<a?(c.hasClass("slick-initialized")||(o.addClass("tabs__head--slider"),c.slick({infinite:!1,slidesToShow:1,variableWidth:!0,draggable:!1,dots:!1,arrows:!1}),l.addClass("disabled"),c.on("afterChange",function(t,e,i){C(i)}),l.on("click",function(){$(this).hasClass("disabled")||c.slick("slickPrev")}),h.on("click",function(){$(this).hasClass("disabled")||c.slick("slickNext")})),c.hasClass("slick-initialized")&&setTimeout(function(){C(r.index($("[data-js-tabs-btn].slick-current")))},0)):_()}else _()}),r.filter('[data-active="true"]').trigger("click",["trigger"]),$(window).trigger("updateTabs"),n.addClass("tabs--init"),n}$(this).each(function(){new t(this)})},this.init()}}),theme.Tabs=new t},$(function(){theme.Tabs()}); |