bootstrap-autohide-navbar
Version:
A small jquery plugin to show/hide twitter bootstrap 3 navbar on scroll.
1 lines • 1.48 kB
JavaScript
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){"use strict";function e(){this.element.css({transform:"translate3d(0, 0, 0)"})}function i(){this.element.css({transform:"translate3d(0, -110%, 0)"})}var n="bootstrapAutoHideNavbar",s=t(window),o=t(document),a={disableAutoHide:!1,delta:5,duration:250,shadow:!1},r=function(){function n(e,i){this.element=t(e),this.settings=t.extend({},a,i),this.element.hasClass("navbar-fixed-top")||this.element.addClass("navbar-fixed-top"),this.settings.shadow&&this.element.css({"box-shadow":"0 0 4px rgba(0,0,0,0.4)"}),this.element.css({transition:"transform ease-in-out "+this.settings.duration+"ms"}),this.init()}return n.prototype.init=function(){function t(){var t=s.scrollTop();Math.abs(a-t)<=n.delta||(t>a&&t>i.outerHeight()?e.hide():t+s.height()<o.height()&&e.show(),a=t)}var e=this,i=e.element,n=e.settings,a=0,r=!1;return s.scroll(function(){r=!0}),setInterval(function(){r&&!n.disableAutoHide&&(t(),r=!1)},250),i},n.prototype.show=function(){e.call(this)},n.prototype.hide=function(){i.call(this)},n.prototype.setDisableAutoHide=function(t){this.settings.disableAutoHide=t},n}();t.fn[n]=function(e){var i;return this.each(function(){void 0===(i=t.data(this,"plugin_"+n))&&(i=t.data(this,"plugin_"+n,new r(this,e)))}),i}});