var mainNav = { init: function () { var t = this; t.setBindings(); t.setEvents(); }, setBindings: function () { var t = this; t.btnToggle = $('.navbar-toggle'); t.mobileNav = $('.mobile-nav'); t.body = $('body'); t.shade = $('.mobile-nav-shade'); t.navOpen = false; }, setEvents: function () { var t = this; t.btnToggle.on('click', function (e) { e.preventDefault(); t.toggleNav(); }); t.shade.on('click', function (e) { t.toggleNav(); }); }, toggleNav: function () { var t = this; var dir = t.navOpen ? 'slideUp' : 'slideDown'; t.mobileNav.velocity(dir, { easing: 'ease-in-out' }); t.shade.toggleClass('active'); t.body.toggleClass('fixed'); t.navOpen = !t.navOpen; } }; var debounce = function (a, b, c) { var d; return function () { var e = this, f = arguments; clearTimeout(d), d = setTimeout(function () { d = null, c || a.apply(e, f) }, b), c && !d && a.apply(e, f) } }; var fixNav = { init: function () { var t = this; t.setBindings(); t.setEvents(); }, setBindings: function () { var t = this; t.win = $(window); t.mainNav = $('#main-navigation'); t.mainContent = $('.container-fluid.main'); }, setEvents: function () { var t = this; t.win.on('load resize', debounce(function () { t.mainContent.css({ 'padding-top': t.mainNav.height() }); }, 50)); } }; $(function () { mainNav.init(); fixNav.init(); });