UNPKG

lintel-contrib-navbar

Version:
2 lines 3.65 kB
!function(a){"use strict";function b(d,e){return this.each(function(){var f=a(this),g=a.extend({},b.defaults,f.data(),"object"==typeof d&&d),h=f.data("lt.navbar");h||(h=new c(this,g),f.data("lt.navbar",h)),"string"==typeof d?h[d](e):g.toggle?h.toggle(e):g.toggleCollapse&&h.toggleCollapse(e)})}var c=function(b,c){this.$navbar=a(b),this.visible=!1,this.collapsed=!0,this.options=c||{},this.options.onInit.call(this,this.$navbar,this.options),this.options.scroll&&this.trackScroll()};c.prototype.show=function(b){if(!this.visible){var c=a.Event("show.lt.navbar",{relatedTarget:b});if(this.$navbar.trigger(c),!c.isDefaultPrevented()){this.visible=!0,this.$navbar.addClass("active");var d=a.Event("shown.lt.navbar",{relatedTarget:b});this.$navbar.trigger(d)}}},c.prototype.hide=function(b){if(this.visible){var c=a.Event("hide.lt.navbar",{relatedTarget:b});if(this.$navbar.trigger(c),!c.isDefaultPrevented()){this.visible=!1,this.$navbar.removeClass("active");var d=a.Event("hidden.lt.navbar",{relatedTarget:b});this.$navbar.trigger(d)}}},c.prototype.toggle=function(a){return this.visible?this.hide(a):this.show(a)},c.prototype.expand=function(b){if(this.collapsed){var c=a.Event("expand.lt.navbar",{relatedTarget:b});if(this.$navbar.trigger(c),!c.isDefaultPrevented()){this.collapsed=!1,this.$navbar.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a("body").removeClass("has-navbar-expanding"),this.$navbar.off(b)}.bind(this)),a("body").addClass("has-navbar-expanded has-navbar-expanding").removeClass("has-navbar-collapsed");var d=a.Event("expanded.lt.navbar",{relatedTarget:b});this.$navbar.trigger(d)}}},c.prototype.collapse=function(b){if(!this.collapsed){var c=a.Event("collapse.lt.navbar",{relatedTarget:b});if(this.$navbar.trigger(c),!c.isDefaultPrevented()){this.collapsed=!0,this.$navbar.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a("body").removeClass("has-navbar-collapsing"),this.$navbar.off(b)}.bind(this)),a("body").addClass("has-navbar-collapsed has-navbar-collapsing").removeClass("has-navbar-expanded");var d=a.Event("collapsed.lt.navbar",{relatedTarget:b});this.$navbar.trigger(d)}}},c.prototype.toggleCollapse=function(a){return this.collapsed?this.expand(a):this.collapse(a)},c.prototype.trackScroll=function(){if(this.scrollListener)return this.scrollListener();var b,c=0;this.scrollListener=a(window).scroll(function(){b=!0}),setInterval(function(){b&&(c=this.hasScrolled(c),b=!1)}.bind(this),this.options.scrollTimeout)},c.prototype.hasScrolled=function(b){var c=a(window).scrollTop();if(!(Math.abs(b-c)<=this.options.scrollDelta))return c>b&&c>this.$navbar.outerHeight()?this.$navbar.removeClass("navbar-down").addClass("navbar-up"):c+a(window).height()<a(document).height()&&this.$navbar.removeClass("navbar-up").addClass("navbar-down"),c},b.defaults={onInit:function(){},scroll:!1,scrollDelta:5,scrollTimeout:100,toggle:!1,toggleCollapse:!1},a.fn.navbar=b,a(document).on("click.lt.navbar.data-attr.toggle",'[data-toggle="navbar"]',function(b){var c=a(this),d=c.closest(".navbar");c.data().target?d=a(c.data().target):d.hasClass("navbar-mobile")&&d.siblings(".navbar").length>0&&(d=d.siblings(".navbar"));var e=d.data("lt.navbar")?"toggle":a.extend(d.data(),c.data(),{toggle:!0});c.is("a")&&b.preventDefault(),d.navbar(e,c[0])}),a(document).on("click.lt.navbar.data-attr.collapse",'[data-toggle="navbar-collapse"]',function(b){var c=a(this),d=c.closest(".navbar"),e=d.data("lt.navbar")?"toggleCollapse":a.extend(d.data(),c.data(),{toggle:!1,toggleCollapse:!0});c.is("a")&&b.preventDefault(),d.navbar(e,c[0])})}(jQuery); //# sourceMappingURL=navbar.min.js.map